判断空指针的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才是地址.
标准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
实际上都是 0
比如 C 的宏定义文件里你就可以看到
#if __cplusplus
#define NULL 0
#else
#define NULL (void*)0
#endif
判断空指针的0与null
NULL与变量等于空的区别
如果 NULL 和 0 作为空指针常数是等价的,那我到底该用哪一个呢?
C语言中指向NULL的指针和野指针有什么区别.NULL是空的意思.这两个指针不一样了吗.
在使用非全零作为空指针内部表达的机器上,NULL 是如何定义的?
p->next=NULL是将指针P指向的next置空还是将P的下一个指针指向空
头结点的指针为空是什么情况,在一段程序中有这样的语句,if(head==null||head->next==null)
定义指针变量时,必须将指针变量初始化为NULL(为空),否则,指针变量会由于初始化位置的不确定,而成为野指针.这句话中‘
已知P是指针变量,则不能初始化指针的值是 A NULL B 1 C 地址 D 0
再给指针变量(*p)赋空值(NULL)时,*p=NULL与p=NULL哪个正确?原因?
p是个指针,如果定义p=NULL,那么p->weight是0还是NULL,p->next又是什么?下面是我定义的结构体
14.若变量已正确定义,(A)不能使指针p成为空指针.A、p=EOFB、p=0C、p=’’ D、p=NULL 理由哈