字符串终止 - 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

+1

嘿乔DF!现在阅读K&R并有同样的问题。谷歌搜索“C字符串中的\ 0”,第二个链接是你的问题。它帮助我;) – vasili111

+1

@ vasili111我很高兴它帮助你。 :) –

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'是明确的。

+0

C标准保证ASCII? –

+0

是的,这是关于我读的C99给出的。感谢那个问题,之前没有找到它。 –

'\0'只是一个ASCII字符。同为'A',或'0''\n'
如果你写char c = '\0”,这是一样的char c = 0;
如果你写char c = 'A',这是一样的char c = 65

这只是一个字符表示,这是一个很好的做法,写下来,当你真的意味着字符串的空字节。由于char在C中是一个字节(整数类型),所以它没有任何特殊的含义。

+0

甚至0x41 :) –

+2

或0b1000001或0101,这在我的答案中并不重要。这都是数字。 –

+0

haha​​ha funny:D –

首选的是让人们阅读代码的能力,让他们理解你如何使用变量 - 作为数字或字符。 最好的做法是使用0时,你的意思是你变量作为数字,并使用'\ 0',当你的意思是你的变量是一个字符。