字符串终止 - char c = 0 vs char c ='\ 0'
当终止字符串时,在我看来逻辑char c=0
等于char c='\0'
,因为“null”(ASCII 0)字节是0
,但通常人们倾向于做'\0'
。这完全是出于偏好还是应该是一个更好的“实践”?字符串终止 - char c = 0 vs char c =' 0'
什么是首选?
编辑:ķ&ř说:“字符常量'\0'
代表具有值零的字符,空字符'\0'
通常写作代替0
以强调字符性质。的一些表达式,但数值仅为0
。
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'
是明确的。
C标准保证ASCII? –
是的,这是关于我读的C99给出的。感谢那个问题,之前没有找到它。 –
'\0'
只是一个ASCII字符。同为'A'
,或'0'
或'\n'
如果你写char c = '\0
”,这是一样的char c = 0;
如果你写char c = 'A'
,这是一样的char c = 65
这只是一个字符表示,这是一个很好的做法,写下来,当你真的意味着字符串的空字节。由于char
在C中是一个字节(整数类型),所以它没有任何特殊的含义。
甚至0x41 :) –
或0b1000001或0101,这在我的答案中并不重要。这都是数字。 –
hahaha funny:D –
首选的是让人们阅读代码的能力,让他们理解你如何使用变量 - 作为数字或字符。 最好的做法是使用0时,你的意思是你变量作为数字,并使用'\ 0',当你的意思是你的变量是一个字符。
嘿乔DF!现在阅读K&R并有同样的问题。谷歌搜索“C字符串中的\ 0”,第二个链接是你的问题。它帮助我;) – vasili111
@ vasili111我很高兴它帮助你。 :) –