2011-06-17 218 views
15

我看过被用作混合二进制文件(UTF8字符串+二进制数据)的分隔符。任何人都可以解释什么'\0'意味着或指向一个好的学习地点吗?反斜杠零分隔符' 0'

回答

18

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

6

\0\000这是一个八字符转义的简写。一般来说,您可以缩短任何八进制数字之后没有的八进制转义。这源自原始C转义序列(\n \r \t \f \v \b \000,其中后者是八进制符号中的字符值; ANSI增加了一些,并且\v现在有点罕见,许多更现代的语言不实现它)。

11

的两字符\0表示在C源代码用来代表空字符,这是(单)字符的ASCII值0

NUL字符是用C风格字符串用于指示字符串的结尾在哪里。例如,该串"Hello"被编码为十六进制字节:

48 65 6c 6c 6f 00 

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

48 65 6c 6c 6f 00 00