下面的说法是否相同?
char *PTR='\0';
&
char *PTR=NULL;
最佳答案
不小心,是的。
'\0'
是ASCII码为0的字符;因此,它是一个值为 0 的整数。 NULL
通常也是一个值为 0 的整数。它们通常具有不同的大小,但在这种情况下编译器会识别出来,因此在这两种情况下 PTR
最终成为空指针(即值为 0 的指针)。
如果您用双引号编写了 char *PTR="\0";
,情况就大不相同了:"\0"
将被分配为双字符数组,两个字符均为 ASCII 0。PTR
将初始化为指向两个零中的第一个。
关于c - 将 '\0' 分配给指针与将 NULL 分配给它相同吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57087362/