发新帖我要提问
12
返回列表
打印

为什么写成NULL就可以,写成0x0010就不行?!

[复制链接]
楼主: pengf
手机看帖
扫描二维码
随时随地手机跟帖
21
pengf|  楼主 | 2014-11-15 12:36 | 只看该作者 回帖奖励 |倒序浏览
结贴了哈

使用特权

评论回复
22
kseeker| | 2014-11-15 21:44 | 只看该作者
好像早期C语言里int *p=0x0010这样是合法的,编译器自动将整形转换为指针地址,没有任何问题。
不过实际使用中人们发现通常这样的写法都是程序员搞错了什么东西,所以现在如果要为指针指定一个整数地址,需要明确的进行类型转换,告诉编译器你确实是要这么干。唯一的例外是0,将一个指针赋值为0是一个很常见的用法,所以编译器特别允许整数0以及(void *)0到任意指针的转换。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则