【发布时间】:2013-05-13 17:11:47
【问题描述】:
据我所知,c 中的字符串终止字符是 '\0'。
我们也可以使用“0”作为终止字符吗?当我将 0 分配给 char 数组中的特定索引,然后使用 printf 时,它只打印到该特定索引。
因此,这两种方式是否等效?空字符是否等于字面量 0?
【问题讨论】:
据我所知,c 中的字符串终止字符是 '\0'。
我们也可以使用“0”作为终止字符吗?当我将 0 分配给 char 数组中的特定索引,然后使用 printf 时,它只打印到该特定索引。
因此,这两种方式是否等效?空字符是否等于字面量 0?
【问题讨论】:
唯一可以用作空终止符的值是数值 0。
0是数值0。'\0' 也是在代码中表示数值 0 的另一种方式'0' 不是数值0(它是数字零)并且不能用作终止符。所有字符串文字都在最后一个可见字符之后隐式包含空终止符。在其他情况下,它可能会自动出现,也可能不会自动出现(取决于字符串的构造方式),但您必须确保在每种情况下都有空终止符。
【讨论】:
是的。
空字符(也是空终止符),缩写为 NUL,是 值为零的控制字符。
没有。 '0' 是一个值为 0x30 的字符。非空字符,不等于0。
【讨论】:
'\0' 是一种输入字节 0 的便捷方式。它称为转义。 '0' 是字符零;非常不一样。 c 中的所有字符串都以字节 0 结束。
【讨论】:
在 C 中,字符串是以 '\0' 结尾的 char 数组。当用单引号写一个 char 时,就像在 '\0' 中,你指的是那个 char 的 asci 值。因此表达式: 返回 '\0' == 0; 将返回 true。
【讨论】: