【问题标题】:Backslash zero delimiter '\0'反斜杠零分隔符 '\0'
【发布时间】:2011-09-16 19:59:58
【问题描述】:

我看到'\0' 被用作混合二进制文件(UTF8 字符串 + 二进制数据)中的分隔符。谁能解释一下'\0' 的含义或指出一个学习的好地方吗?

【问题讨论】:

    标签: binary binaryfiles delimiter


    【解决方案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
        

        【讨论】:

          猜你喜欢
          • 2018-08-07
          • 1970-01-01
          • 2012-10-23
          • 1970-01-01
          • 2020-05-06
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多