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

[复制链接]
2376|21
 楼主| pengf 发表于 2014-11-15 12:36 | 显示全部楼层
结贴了哈
kseeker 发表于 2014-11-15 21:44 | 显示全部楼层
好像早期C语言里int *p=0x0010这样是合法的,编译器自动将整形转换为指针地址,没有任何问题。
不过实际使用中人们发现通常这样的写法都是程序员搞错了什么东西,所以现在如果要为指针指定一个整数地址,需要明确的进行类型转换,告诉编译器你确实是要这么干。唯一的例外是0,将一个指针赋值为0是一个很常见的用法,所以编译器特别允许整数0以及(void *)0到任意指针的转换。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 在线客服 返回列表 返回顶部