c - 在 C 中使用空终止字符作为空指针

标签 c

这个问题在这里已经有了答案:





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/

相关文章:

c++ - C 中 'allocated object having no declared type' 的 C++ 等价物是什么?

c - ANSI C 中的 float 转换

c++ - 如何在 C++ (MSVS) 中获取自纪元以来的本地当前时间(以秒为单位)?

C: &array_name 的类型是什么?

将值写入其他变量后,C 在函数中释放 int 数组

c - C程序中的新建和删除

c - 在C中打印双向链表的下一个和上一个值

c - 从函数返回多个指针

无法从另一个进程打开信号量

c - 保存数组会导致 c 中的空文件