我正在研究一个接受输入的程序,并输出与输入相对应的数值.我在char部分得到了错误.我不明白为什么当数组中只有27个字符的大小为27时会出现错误?
int main ()
{
char greek[27] = "ABGDE#ZYHIKLMNXOPQRSTUFC$W3";
}
Run Code Online (Sandbox Code Playgroud)
您需要多一个[28]尾随'\0'作为有效字符串.
C中的字符串由字符数组表示.字符串的末尾标有一个特殊字符,即空字符,它只是值为0的字符.(空字符除了名称与空指针之外没有关系.在ASCII字符集中,空字符命名为NUL.)null或字符串终止字符由另一个字符转义序列\ 0表示.
正如Jim Balter和Jayesh所指出的,当您提供初始值时,您可以省略数组大小(编译器使用初始化器的数量作为数组大小).
char greek[] = "ABGDE#ZYHIKLMNXOPQRSTUFC$W3";
Run Code Online (Sandbox Code Playgroud)