这个问题在这里已经有了答案:
What is the difference between NULL, '\0' and 0?
(11 个回答)
4 个月前关闭。
#include <stdio.h>
int main(){
int *p = '\0';
if (p == NULL){
// this block will get executed.
}
return 0;
}
我读过 0
, NULL
和 \0
都等于整数常数 0
在 C。那么上面的代码在设置和检查 NULL 指针时在技术上是否正确?我想它仍然需要避免,因为
\0
主要用于终止字符串,这里的用法很困惑?
最佳答案
'\0'
是一个整数零。
这三个做的完全一样。
int *p = NULL;
int *p = 0;
int *p = '\0';
但最后两个可能会发出警告。
关于c - 在 C 中使用空终止字符作为空指针,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67864675/