我曾看到'\0'
被用作混合二进制文件(UTF8字符串+二进制数据)的分隔符。能否有人解释一下'\0'
的含义或指向一个好的学习资源?
我曾看到'\0'
被用作混合二进制文件(UTF8字符串+二进制数据)的分隔符。能否有人解释一下'\0'
的含义或指向一个好的学习资源?
在C源代码中,使用两个字符的\0
表示法来表示NUL字符,它是ASCII值为0的(单个)字符。
NUL字符用于C样式的字符字符串中,以指示字符串的结尾。例如,字符串"Hello"
被编码为十六进制字节:
48 65 6c 6c 6f 00
00
字节。如果您将常量写成"Hello\0"
,那么C编译器将生成:48 65 6c 6c 6f 00 00
\0
是\000
的缩写,它是一个八进制字符转义。通常情况下,你可以缩短任何不后跟八进制数字的八进制转义。这源于原始的C转义序列(\n \r \t \f \v \b \000
,其中后者是八进制表示法中的字符值;ANSI添加了一些内容,而\v
在今天已经很少见了,许多更现代的语言也没有实现它)。