C# - “\0”相当于什么?
-
21-09-2019 - |
题
我正在玩 派克斯 它传递给我的方法的参数之一是 "\0"
.
这意味着什么?我的猜测是一个空字符串(""
)基于我的方法的内容。但是,如果是相同的那么为什么不直接使用 ""
代替 "\0"
?
有人知道这是什么吗?
其他提示
它是一个包含字符“\0”的字符串。C# 并没有以任何特别的方式对待它 - 它只是 unicode 字符 U+0000。如果你写:
int firstCodePoint = text[0];
然后你会发现 firstCodePoint
是 0。
它是一个带有空字符的字符串。较旧的字符串库(如 C 或较旧的 C++ 库中使用的字符串库)使用“\0”字符来指示字符串的结尾。
.Net 等较新的环境使用不同的系统,但有很多关于以 '\0' 结尾字符串的历史,因此它是一个常见的错误点。像 Pex 这样的测试库将使用它来确保您的程序正确处理它。
长度为 1 的字符串,包含字符 \u0000(又名 NUL)。这个角色没有受到特殊对待。
在 C 中,使用 \0 来终止字符串,您还可以分配一个长度为 1 的字符串。在这种情况下,标准字符串函数将报告长度为 0,因为字符串包含 \0 并以其结尾。您可以安全地修改 str[0],或 strncat 将单个字符放入其中。
Escape Sequence
\0
Character Name
Null
Unicode Encoding
0x0000
不隶属于 StackOverflow