在c ++中,如果我们指定一个指针值NULL,为什么我们不检查是否*p!=NULL相反p!=NULL?
我在教程中找到了这段代码.
int *p = NULL;
char *q = NULL;
// ...
if (p!=NULL) cout << *p;
Run Code Online (Sandbox Code Playgroud)
提前致谢
我觉得你很困惑.本教程中的代码是创建一个指针并将其初始化为NULL,然后它将测试它是否是NULL.你不检查是否*p != NULL因为它将测试它指向的是什么NULL,而不是测试指针本身是否的原因NULL.
当然,*p如果它是一个有效的指针,你可以选择测试你喜欢的任何值...这一切都取决于你想做什么.
编辑:
你没有分配NULL给*p你分配它p.声明int *p = NULL;与写作相同:
int *p;
p = NULL;
Run Code Online (Sandbox Code Playgroud)
int * 是类型.
基本上,当你写作:if(p != NULL)你只是测试是否p指向一个地方,使其安全使用*p.