我正在努力寻找这个问题的原因,因为我正在复习的书告诉我初始化数组的大小,但是,这个可以编译。
int main (void){
char word_0[] = "Hola que tal\n";
printf("%s", word_0);
char word_1[20] = "Hola que tal\n";
printf("%s", word_1);
return 0;
}
我知道我在“浪费”word_1的内存,因为我要求的空间(大小=20)比我需要的多,但是word_0(大小=?)会发生什么?
最佳答案
如果在声明数组时没有指定任何大小,但使用了初始值设定项,C将选择一个大小刚好足以容纳初始值设定项指定的所有元素的大小。在你的情况下
char word_0[] = "Hola que tal\n";
,即14个字符(其中包括一个用于字符串结束符)。
关于c - 炭字[]与炭字[5],我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/52637408/