字符数组的初始化字符串太长C

奥德伦托克

我正在研究一个接受输入并输出与输入相对应的数值的程序。我在char部分得到了错误。我不明白为什么当数组中只有27个字符且大小为27时会出现这样的错误?

int main ()
{
    char greek[27] = "ABGDE#ZYHIKLMNXOPQRSTUFC$W3";
}
大卫·拉涅里(David Ranieri)

您需要再加上一个[28]才能使尾随'\0'有效字符串。

看一下C编程注意事项:第8章:字符串

C中的字符串由字符数组表示。字符串的末尾标有特殊字符,即空字符,即值为0的字符。(空字符除名称外与空指针没有关系。在ASCII字符集中,空字符空字符或以字符串结尾的字符由另一个字符转义序列\ 0表示。

正如Jim Balter和Jayesh所指出的那样,当您提供初始值时,您可以省略数组大小(编译器使用初始化程序的数量作为数组大小)。

char greek[] = "ABGDE#ZYHIKLMNXOPQRSTUFC$W3";

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章