作业帮 > 综合 > 作业

判断空指针的0与null

来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/05/21 15:49:00
判断空指针的0与null
标准C下定义:char *p;
关于指针指向值是否为空的判断,请问以下四种方式是否等价?有无最优选择?
1、if(*p = NULL)
2、if(*p = 0)
3、if(p)
4、if(p = 0)
“其次,*p是取指针里面的内容即里面存的地址”
这里说的不太对吧?*p表示取p所指向的地址中存的内容,p才是地址.
1,2是错的,3,4是对的,从代码的简洁性来说当然是3最简洁不过了,但是从程序的可读性来考虑,就是4比较容易让人一下子读懂.在C++中NULL与0是一样的,只是编程语言编译的时候的语义分别
实际上都是 0
比如 C 的宏定义文件里你就可以看到
#if __cplusplus
#define NULL 0
#else
#define NULL (void*)0
#endif