反斜杠零分隔符'\ 0'

ban*_*cer 19 binary binaryfiles delimiter

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

kab*_*uko 23

这是空字符; 这篇维基百科文章中的更多信息.


Gre*_*ill 13

\0在C源代码中使用双字符表示来表示NUL字符,它是具有ASCII值0的(单个)字符.

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

48 65 6c 6c 6f 00
Run Code Online (Sandbox Code Playgroud)

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

48 65 6c 6c 6f 00 00
Run Code Online (Sandbox Code Playgroud)


gee*_*aur 7

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