2013-05-18 140 views
1

据我所知c中的字符串终止字符是'\ 0'。什么是正确的字符串终止符在c

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

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

+1

可能的重复[NULL,'\ 0'和0之间的区别是什么(http://stackoverflow.com/questions/1296843/what-is-the-difference-between-null-0-and- 0) –

回答

14

,可以用来作为一个空终止的唯一值是数值0

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

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

4

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

6
  • 是否为空字符,等于文字0?

是的。

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

  • 我们可以使用 '0' 的终止符吗?

编号'0'是一个值为0x30的字符。它不是空字符和不等于0

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

1

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