"\0"是合法常量吗

如题~请说下原因谢谢

不是合法“字符常量",字符常量用单引号括起,不用双引号。
'\0' -- 空字符,合法字符常量。

"\0" 是合法"字符串常量",C 语言中 用它作为字符串结束标记,占一个字符内存(1 个 byte).

例如:char s[]="abc123\0XYZ789";
实际上,s[]里含 "abc123\0XYZ789\0";
printf("%s",s); 打出 abc123;
printf("%s \n", &s[7]); 打出 XYZ789
显然 "\0" 是合法字符串常量
温馨提示:答案为网友推荐,仅供参考
第1个回答  2010-05-03
'\0'是个字符常量.对应ASCII码的0.
也就是相当于一个字符吧,像'a'一样.
但是\0就是错的.
然后楼上说的也不对.
单引号是是描述字符常量的,双引号是描述字符串常量的,当然也可以用于描述只有一个字符的字符串.
不过如果是"\0",输出就有点复杂了,因为如果是%s输出的话,字符串遇到'\0'就停止输出了.(因为字符串本身自动最后加上的一个'\0'),所以程序现在应该什么都不会输出出去.
同理,如果你字符串是"abc\0def",用%s输出,就只会有abc了.本回答被提问者采纳
第2个回答  2010-05-03
加双引号的是合法的常量,此时它是ASC码为零的控制符,当加单引号时就不是了,此时它是一个字符串的结束标志。
第3个回答  2010-05-03
"\0"是字符结束符,它不是什么常量,只是做个标识符罢了
第4个回答  2010-05-03
是的

指针如果指向了\0,这时候printf *p会输出0。
相似回答