所以我刚刚阅读了一个示例,了解如何创建表示字符串的字符数组。
空字符\0
被放在数组的末尾,用来标记数组的结束。这是必要的吗?
如果我创建了一个字符数组:
char line[100];
然后说:
"hello\n"
在其中,字符将放在前六个索引 line[0]
- line[6]
,因此数组的其余部分将填充还是空字符?
这本书说,这是一种约定,例如,字符串常量 "hello\n"
放在字符数组中并以 \0
结尾。
也许我没有完全理解这个主题,很高兴得到启发。
最佳答案
\0
字符不标记“数组的结尾”。 \0
字符标记存储在 char 数组中的 string 的结尾,如果(且仅当)该 char 数组旨在存储一个字符串。
字符数组就是一个字符数组。它存储独立的整数值(char
只是一种小整数类型)。字符数组不必以 \0
结尾。 \0
在 char 数组中没有特殊含义。它只是一个零值。
但有时字符数组用于存储字符串。字符串是以 \0
结尾的字符序列。因此,如果您想将 char 数组用作字符串,则必须以 \0
结束您的字符串。
因此,关于 \0
是“必要的”这个问题的答案取决于您在 char 数组中存储的内容。如果您正在存储一个字符串,那么您必须用\0
来终止它。如果您存储的不是字符串,那么 \0
就没有任何特殊意义。
关于arrays - 何时/为什么需要 '\0' 来标记 (char) 数组的结尾?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40821419/