真正的noob问题毫无疑问,但我无法摆脱这种行为。我初始化一个二维数组,然后调用一个函数来打印出它的某些值。程序和结果如下所示:二维数组 - 为什么我没有引用预期的元素?
int
main(void)
{
int matrix[3][5] =
{
{14,7,6,55,2},
{8,33,12,88,24},
{19,20,21,90,7}
};
printArray(3, 5, matrix);
printArray(2, 3, matrix);
return 0;
}
void
printArray(int rows, int columns, int matrix[rows][columns])
{
int i, j;
for (i = 0; i < rows; i++)
{
for (j = 0; j < columns; j++)
printf("%3i ", matrix[i][j]);
printf("\n");
}
printf("\n");
}
14 7 6 55 2
8 33 12 88 24
19 20 21 90 7
14 7 6
55 2 8
看来,第二时间printArray()被调用,它将继续在新的一行打印从第一行的值,而不是实际访问的下一行。我不明白这一点,因为索引值是不变的,不是吗? (即矩阵[1] [2]应该是(在这种情况下)12,而不是预先8.
由于
太好了,我得到它。非常感谢。 – spoovy