When terminating a string, it seems to me that logically char c=0
is equivalent to char c='\0'
, since the "null" (ASCII 0) byte is 0
, but usually people tend to do '\0'
instead. Is this purely out of preference or should it be a better "practice"?
What is the preferred choice?
EDIT: K&R says: "The character constant '\0'
represents the character with value zero, the null character. '\0'
is often written instead of 0
to emphasize the character nature of some expression, but the numeric value is just 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
There's no difference, but the more idiomatic one is '\0'
.
Putting it down as char c = 0;
could mean that you intend to use it as a number (e.g. a counter). '\0'
is unambiguous.