5

据我所知,c 中的字符串终止字符是'\0'。

我们也可以使用“0”作为终止字符吗?当我将 0 分配给 char 数组中的特定索引,然后使用 printf 时,它只打印到该特定索引。

因此,两种方式是否等效?空字符是否等于文字 0?

4

4 回答 4

24

唯一可以用作空终止符的值是数值 0。

  • 0 数值 0。
  • '\0' 也是在代码中表示数值 0 的另一种方式
  • '0' 不是数值 0(它是数字零),不能用作终止符。

所有字符串文字都在最后一个可见字符之后隐式包含空终止符。在其他情况下,它可能会自动出现,也可能不会自动出现(取决于字符串的构造方式),但您必须确保在每种情况下都有空终止符。

于 2013-05-18T18:37:07.497 回答
7
  • 空字符是否等于文字 0?

是的。

空字符(也是空终止符),缩写为 NUL,是一个值为零的控制字符。

  • 我们也可以使用“0”作为终止字符吗?

不,'0' 是一个值为 0x30 的字符。它不是空字符,也不等于 0。

请参阅此链接:http ://www.asciitable.com/

于 2013-05-18T18:31:23.873 回答
5

'\0' 是输入字节 0 的一种方便方式。它称为转义。'0' 是字符零;非常不一样。c 中的所有字符串都以字节 0 结尾。

于 2013-05-18T18:29:54.763 回答
2

在 C 中,字符串是以 '\0' 结尾的 char 数组。当用单引号写一个 char 时,就像在 '\0' 中,你指的是那个 char 的 asci 值。因此表达式: return '\0' == 0; 将返回 true。

于 2013-05-18T18:46:08.293 回答