我知道c中的字符串终止字符是'\ 0'。
我们也可以使用'0'作为终止字符吗?当我将0分配给char数组中的特定索引,然后使用printf时,它只打印到该特定索引。
因此,两种方式都相同吗?是否为等于文字0的空字符?
答案 0 :(得分:18)
唯一可以用作空终止符的值是数值0。
0
数值0。'\0'
也是代表代码中数值0的另一种方法'0'
不是数值0(数字零),不能用作终结符。< / LI>
所有字符串文字在其最后一个可见字符后隐式包含空终止符。在其他情况下,它可能会或可能不会自动存在(取决于字符串的构造方式),但您必须确保在每种情况下都存在空终止符。
答案 1 :(得分:7)
是
null字符(也是null终止符),缩写为NUL,是一个 控制字符值为零。
没有。 '0'是值为0x30的字符。它不是空字符,不等于0。
请参阅此链接:http://www.asciitable.com/
答案 2 :(得分:5)
'\ 0'是输入字节0的便捷方式。它称为转义。 '0'是字符零;非常不一样。 c中的所有字符串都以字节0结束。
答案 3 :(得分:2)
在C中,字符串是以'\ 0'结尾的char数组。使用单引号编写字符时,如'\ 0',您将受到该字符的asci值的影响。因此表达式: 返回'\ 0'== 0; 会回归真实。