c语言零基础最细致指针的讲解:C标准中关于空指针让你脑洞大开的那些事

c语言零基础最细致指针的讲解:C标准中关于空指针让你脑洞大开的那些事(1)

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哦!

c语言零基础最细致指针的讲解:C标准中关于空指针让你脑洞大开的那些事(2)

,

免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。文章投诉邮箱:anhduc.ph@yahoo.com

    分享
    投诉
    首页