以下代码如何运行的,答案是369,就很迷

int m[][3] = {1,4,7,2,5,8,3,6,9,};
int i,j,k=2;
for ( i=0; i<3; i++ ) {
printf("%d", m[k][i]);
}

img

int m[][3] = {1,4,7,2,5,8,3,6,9,}; 是一个多行3列的数组;

int m[][3] 为

1,4,7
2,5,8
3,6,9
for ( i=0; i<3; i++ ) {
printf("%d", m[k][i]);
}

是输出第三行,因此是 369

m是个二维数组,其中m第三行,也就是m[2]的元素是{3,6,9}
输出语句中,k=2,那么就只打印第三行的数据,i从0到2,所以打印的就是369
望采纳,谢谢!

因为在循环依次打印 m[2][0] , m[2][1] , m[2][2] , 然后就是打印行下标为2(就是第三行)的三列,他们依次就是3,6,9 。

int m[][3] = {1,4,7,2,5,8,3,6,9,}; 是二维数组缺省行数的定义方式,这里m是一个3列的二维数组。总共初始化了9个数,编译器自动计算行数,得到3x3的二维数组,所以输出了最后一行369。