【发布时间】:2015-07-20 07:27:02
【问题描述】:
我不明白为什么这个简单的代码会有这种奇怪的行为。
`代码:
int main(){
int m[10][10];
int i=0;
int j=0;
for (i;i<10;i++) {
for (j;j<10;j++) {
m[i][j]=i+j;
printf("%d ", m[i][j]);
}
printf("\n");
}
printf("%d ", m[4][3]);
}
`
我期待一个类似矩阵的输出,但输出是这样的:
0 1 2 3 4 5 6 7 8 9
32678
注意,程序在32678之前打印了9个空行(m[4][3]的打印值,显然应该是7)。感谢您的宝贵时间。
【问题讨论】:
-
你在哪里找到这样的 for 循环:
for(i;i<10;i++)? -
当只有一个循环时它可以工作,初始化在代码之前。我认为这是我应该改掉的坏习惯。
-
好的@Gandi,但如果你在循环之前初始化
i,你可以写for(;i<10;i++)