C语言二维数组,有人给我解释下吗?

以下程序片段的输出结果是:

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]);
}
A.369
B.不能通过编译
C.789
D.能编译,但是运行时数组下标越界了

正确答案:A你选对了

二维数组m的列大小是3,有9个初始元素,可据此自动推断出行大小是3。

所以,行下标和列下标的范围都是0-2。

k=2作为行下标固定,没有越界,列下标i从0循环到2也没有越界。

因此,输出的就是m[2][0]、m[2][1]、m[2][2],即369,所以选A。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2020-10-16
三行三列的二维数组,k的值是2就是第三行,i的值累计就是输出第三行每列的值。
第2个回答  2020-10-16
循环输出m[k][i],你的二维数组应该是这样 {{1,4,7},{2,5,8},{3,6,9}}

m[2][0] = 3
m[2][1] = 6
m[2][2] = 9本回答被提问者采纳
第3个回答  2020-10-16
二维数组的定义式,data Type arrayName[Iength1][Iength2]