反斜杠零定界符'\ 0'

问题描述 投票:20回答:3

我已经看到'\0'用作混合二进制文件(UTF8字符串+二进制数据)中的定界符。谁能解释'\0'的意思或指向一个好的学习场所?

binary binaryfiles delimiter
3个回答
23
投票

这是空字符;此Wikipedia article中的更多信息。


13
投票

在C源代码中使用两个字符\0表示来表示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

7
投票

\0\000的简写,它是八进制字符转义。通常,您可以缩短没有八进制数字的任何八进制转义。这源自原始的C转义序列(\n \r \t \f \v \b \000,其中后者是八进制表示法中的字符值; ANSI添加了一些,而\v如今很少见,并且许多现代语言未实现它)。

© www.soinside.com 2019 - 2024. All rights reserved.