C语言中的NULL总是被定义为0吗?NULL总是等于0吗?

[复制链接]
查看11 | 回复1 | 2013-8-26 16:00:43 | 显示全部楼层 |阅读模式
NULL总是等于0吗? 对这个问题的回答与“等于”所指的意思有关。如果你是指“与。比较的结果为相等”,例如:if(/* ... */){p=NULL;}else{p=/* something else */;}/* ... */if(p==0)那么NULL确实总是等于0,这也就是空指针定义的本质所在。如果你是指“其存储方式和整型值。相同”,那么答案是“不”。NULL并不必须被存为一个整型值0,尽管这是NULL最常见的存储方式。在有些计算机中,NULL会被存成另外一些形式。如果你想知道NULL是否被存为一个整型值0,你可以(并且只能)通过调试程序来查看空指针的值,或者通过程序直接将空指针的值打印出来(如果你将一个空指针强制转换成整类型,那么你所看到...
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行