2013-05-18 166 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。