反斜杠零分隔符 '\0'
Posted
技术标签:
【中文标题】反斜杠零分隔符 \'\\0\'【英文标题】:Backslash zero delimiter '\0'反斜杠零分隔符 '\0' 【发布时间】:2011-09-16 19:59:58 【问题描述】:我看到'\0'
被用作混合二进制文件(UTF8 字符串 + 二进制数据)中的分隔符。谁能解释一下'\0'
的含义或指出一个学习的好地方吗?
【问题讨论】:
【参考方案1】:它是空字符;更多信息在这个***article。
【讨论】:
【参考方案2】:\0
是 \000
的简写,它是八进制字符转义。通常,您可以缩短任何不跟八进制数字的八进制转义。这源于原始的 C 转义序列(\n \r \t \f \v \b \000
,其中后者是八进制表示法的字符值;ANSI 添加了一些,\v
现在有点少见,许多现代语言都没有实现它)。
【讨论】:
【参考方案3】:两个字符的\0
表示在C 源代码中用于表示NUL character,这是ASCII 值为0 的(单个)字符。
NUL 字符在 C 风格的字符串中用于指示字符串的结尾在哪里。例如,字符串"Hello"
被编码为十六进制字节:
48 65 6c 6c 6f 00
在这种情况下,C 编译器会自动在任何双引号字符串的末尾添加 00
字节。如果你把常量写成"Hello\0"
,那么C编译器会生成:
48 65 6c 6c 6f 00 00
【讨论】:
以上是关于反斜杠零分隔符 '\0'的主要内容,如果未能解决你的问题,请参考以下文章