<分区>
guyz,今天我很困惑(好吧,至少对我来说是这样)。我被声明为一个数组,具有以下属性:
int arr[0][1] = {1,2,3,4,5,6 ... };
在执行此操作时,我收到此警告:
warning: excess elements in array initializer.
在打印这段代码时,我在每个索引中都得到了一些垃圾值。 之后,我尝试使用以下片段,
int arr[][1] = {1,2,3,4,5,6,7,8,9};
奇怪的是,我没有收到警告也没有错误。当我执行以下代码时:
#include <stdio.h>
int main() {
int t[][1] = {1,2,3,4,5,6,7,8,9};
for(int i=0; i<9; i++){
for(int j=0; j<9; j++)
printf("%i ",t[i][j]);
printf("\n");
}
return 0;
}
我得到了这个结果:
1 2 3 4 5 6 7 8 9
2 3 4 5 6 7 8 9 0
3 4 5 6 7 8 9 0 8
4 5 6 7 8 9 0 7 3
5 6 7 8 9 0 6 4 13247168
6 7 8 9 0 5 5 13247168 0
7 8 9 0 4 6 13247168 0 4199400
8 9 0 3 7 13247168 0 4199400 0
9 0 2 8 13247168 0 4199400 0 0
现在这已成为我理解的一个严重问题和困惑。如果你知道背后的原因,请帮助我。谢谢。