在c语言中,NULL等不等于0?假设p是一个指针变量,if(p);和if(p!=NULL);这两个

在c语言中,NULL等不等于0?假设p是一个指针变量,if(p);和if(p!=NULL);这两个语句是否等价?

对这个问题的回答与“等于”所指的意思有关。如果你是指“与。比较的结果为相等”,例如:
if(/* ... */)
{
p=NULL;
}
else
{
p=/* something else */;
}
/* ... */
if(p==0)
那么NULL确实总是等于0,这也就是空指针定义的本质所在。

如果你是指“其存储方式和整型值。相同”,那么答案是“不”。NULL并不必须被存为一个整型值0,尽管这是NULL最常见的存储方式。在有些计算机中,NULL会被存成另外一些形式。

如果你想知道NULL是否被存为一个整型值0,你可以(并且只能)通过调试程序来查看空指针的值,或者通过程序直接将空指针的值打印出来(如果你将一个空指针强制转换成整类型,那么你所看到的很可能就是一个非零值)。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2015-02-22
null意思是没有定义任何内容 而0具有一定的数值意义

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网