在终止字符串时,在我看来逻辑上char c=0
等同于char c='\0'
,因为“null”(ASCII 0)字节是0
,但通常人们倾向于改为'\0'
。这纯粹是出于偏好还是应该是一个更好的“实践”?
什么是首选?
编辑: K& R 说:“字符常量'\0'
代表字符值为零时,空字符。'\0'
通常是代替0
来强调某些表达式的字符性质,但数值只是0
。
答案 0 :(得分:37)
http://en.wikipedia.org/wiki/Ascii#ASCII_control_code_chart
Binary Oct Dec Hex Abbr Unicode Control char C Escape code Name
0000000 000 0 00 NUL ␀ ^@ \0 Null character
没有区别,但更惯用的是'\0'
。
将其设为char c = 0;
可能意味着您打算将其用作数字(例如计数器)。 '\0'
是明确的。
答案 1 :(得分:18)
'\0'
只是一个ASCII字符。与'A'
或'0'
或'\n'
相同
如果您写char c = '\0
',则与char c = 0;
相同
如果您写char c = 'A'
,则与char c = 65
它只是一个字符表示,当你真正意味着字符串的NULL字节时,写它是一个好习惯。由于char
在C一个字节(整数类型)中,因此它没有任何特殊含义。
答案 2 :(得分:3)
首选的选择是让人们阅读您的代码能够理解您如何使用变量 - 作为数字或字符。 当你的意思是变量为数字时,最佳做法是使用0,当你的变量是一个字符时,最好使用'\ 0'。