文字列を終了するとき、「null」(ASCII 0)バイトはchar c=0
であるため、論理的にchar c='\0'
は0
と同等であるように見えますが、通常は代わりに'\0'
を実行する傾向があります。これは純粋に好みではありませんか、それともより良い「練習」である必要がありますか?
望ましい選択肢は何ですか?
編集:K&Rsays:「文字定数'\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'
は明確です。
'\0'
は単なるASCII文字です。'A'
、または'0'
または'\n'
と同じです。char c = '\0
'と書くと、char c = 0;
と同じですchar c = 'A'
と書くと、char c = 65
と同じです
これは単なる文字表現であり、文字列のNULLバイトを本当に意味する場合は、それを記述することをお勧めします。 char
はCの1バイト(整数型)であるため、特別な意味はありません。
望ましい選択は、コードを読んでいる人に、変数をどのように使用するかを数字または文字として理解できるようにすることです。ベストプラクティスは、変数を数値として使用する場合は0を使用し、変数が文字である場合は「\ 0」を使用することです。