【发布时间】:2018-08-23 18:04:27
【问题描述】:
我不了解我的程序。代码如下:
#include <stdio.h>
int main(){
int t[2][5], i, j;
t[1][0]=2;
t[1][1]=3;
t[1][2]=4;
t[1][3]=5;
t[1][4]=6;
t[0][2]=7;
t[1][2]=8;
for(i=0; i<2; i++){
for(j=0; j<5; j++){
printf("%d ", t[i][j]);
}
printf("\n");
}
for(i=0; i<2; i++){
t[0][i]=0;
}
for(i=0; i<2; i++){
for(j=0; j<5; j++){
printf("%d ", t[i][j]);
}
printf("\n");
}
return 0;
}
它给了我这个输出:
0 0 7 0 4196128
2 3 8 5 6
0 0 7 0 4196128
2 3 8 5 6
我不明白为什么会弹出 4196128。请解释一下。
我想这与编译器有关。
【问题讨论】:
-
@SusmitAgrawal 为什么 t[0][0] = 0?我也没有初始化 t[0][0]。
-
你做到了。
for(i=0; i<2; i++){t[0][i]=0;}会这样做。 -
@TimRandall 在那之后我做到了。
-
好吧,如果您不清楚您是在谈论第一个打印输出还是第二个打印输出,那么我们的沟通将会模棱两可并且容易产生误解。我理解“我没有初始化 t[0][0]”的意思是您认为您从未 分配了一个值。这就是为什么我指出你这样做了。
-
记住这一点:它从来不是编译器。
标签: c arrays initialization