1. C标准不保证用所有二进制位都为0的变量来表示空指针,但它保证空指针与任何对象或函数的指针都不相等,取地址操作符&永远也不会返回空指针;
2. C标准称在指针上下文中的“值为0的整形常量表达式”会在编译时转换为空指针;
3. C标准中,在使用非零位模式作为空指针的内部表示的机器上,NULL和其他机器一样,定义为0或(void*)0,编译器在指针上下文看到的未加修饰的0都会被生成正确的空指针;
4. C程序猿或媛应该明白,在指针上下文中NULL和0是完全等价的;
5. C确保源代码中的0(用于指针上下文)会生成空指针;
6. malloc(0)可以返回NULL或者指向0个字节的指针;
7. 空指针和空指针常量是2码事:前者是将后者赋给一个指针类型的结果,且不一定二进制位为全0,而后者2进制为一定为全0,即等于NULL;
8. 任何空指针相互比较或和NULL比较结果一定为true,任何空指针和非空指针比较结果一定为false;
9. C中还有一种字面常量NUL,它的确是全0哦!