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

时间:2014-08-22 08:29:38

标签: c arrays char

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

int main ()
{
    char greek[27] = "ABGDE#ZYHIKLMNXOPQRSTUFC$W3";
}

1 个答案:

答案 0 :(得分:8)

对于尾随[28],您还需要一个'\0'作为有效字符串。

看看C Programming Notes: Chapter 8: Strings

  

C中的字符串由字符数组表示。结束了   string标有一个特殊字符,即null字符   只是值为0的字符。(空字符没有   除了名称以外的空关系。在ASCII字符中   set,null字符被命名为NUL。)null或字符串终止   字符由另一个字符转义序列\ 0。

表示

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

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