【发布时间】:2017-04-10 19:47:25
【问题描述】:
所以我刚刚阅读了一个关于如何创建表示字符串的字符数组的示例。
将空字符\0放在数组的末尾以标记数组的末尾。这是必要的吗?
如果我创建了一个 char 数组:
char line[100];
并输入单词:
"hello\n"
在其中,字符将被放置在前六个索引line[0] - line[6],所以数组的其余部分无论如何都会被空字符填充?
这本书说,这是一个约定,例如将字符串常量"hello\n" 放入字符数组并以\0 终止。
也许我没有完全理解这个话题,希望能得到启发。
【问题讨论】:
-
\0 用于在 C 中标记字符串的结尾。大多数 C 标准库函数要求字符串以这种方式终止才能工作。
-
由于 C 不知道你的字符串有多长,你必须用 \0 标记结尾,这样它就知道它已经到达了你的字符串的结尾。
-
您也可以在 C 中使用 Pascal 字符串。当然,现有的函数不会期望这样,所以它们不会一起工作。
标签: arrays c char c-strings null-terminated