反斜杠零分隔符'\ 0'

时间:2011-06-17 00:27:35

标签: binary binaryfiles delimiter

我已经看到'\0'用作混合二进制文件(UTF8字符串+二进制数据)中的分隔符。任何人都可以解释'\0'的含义或指向一个好的学习地点吗?

3 个答案:

答案 0 :(得分:19)

这是空字符;更多信息在这个维基百科article

答案 1 :(得分:11)

C源代码中使用双字符\0表示来表示NUL字符,即ASCII值为0的(单个)字符。

NUL字符用于C样式字符串,以指示字符串结尾的位置。例如,字符串"Hello"被编码为十六进制字节:

48 65 6c 6c 6f 00

在这种情况下,C编译器会自动在任何双引号字符串的末尾添加00字节。如果将常量写为"Hello\0",则C编译器将生成:

48 65 6c 6c 6f 00 00

答案 2 :(得分:6)

\0\000的简写,这是一个八进制字符转义符。通常,您可以缩短任何八进制数后面没有八进制数的转义。这源于原始的C转义序列(\n \r \t \f \v \b \000,其中后者是八进制表示法中的字符值; ANSI添加了一些,而\v现在有点罕见,而且更多现代语言不实现它)。