Backslash zero delimiter '\0'
I have seen '\0'
to be used as a delimiter in mixed binary files (UTF8 strings + binary data). Could anyone explain what '\0'
means 开发者_如何学编程or point to a good place to study?
It's the null character; more info in this Wikipedia article.
The two-character \0
representation is used in C source code to represent the NUL character, which is the (single) character with ASCII value 0.
The NUL character is used in C style character strings to indicate where the end of the string is. For example, the string "Hello"
is encoded as the hex bytes:
48 65 6c 6c 6f 00
In this case, the C compiler automatically adds the 00
byte on the end of any double-quoted string. If you wrote the constant as "Hello\0"
, then the C compiler would generate:
48 65 6c 6c 6f 00 00
\0
is shorthand for \000
which is an octal character escape. In general, you can shorten any octal escape that isn't followed by an octal digit. This derives from the original C escape sequences (\n \r \t \f \v \b \000
where the latter is a character value in octal notation; ANSI added some, and \v
is somewhat rare these days and many more modern languages don't implement it).
精彩评论