1、空指针表示"未分配"或者"尚未指向任何地方"。它与未初始化的指针不同,未初始化的指针可能指向任何地方。每种指针类型都要一个空指针,而不同类型的空指针的内部可能不尽相同。
2、一般给指针赋值0就是将指针设为空指针(等同设为NULL)。但是0作为函数参数,传给指针时需要对0作类型转换。
3、可以使用if(p)等同于if(p != 0),但是这种风格不好。
4、NULL实际上是一个定义在 stdio.h中定义的宏,代表空指针常数,赋给指针,等同于0。欲处理器把所有NULL都转换为0
总结:两条规则:
(1)当需要使用空指针常数,使用0或者NULL
(2)当在函数调用中使用0或者NULL用作参数,把它转换成被调
函数需要的指针类型。