4.5 二维数组(选学)
这些内容在函数学完、指针学完之后,还会有更深入的理解。现在可以先了解基础概念。
二维数组就是"一维数组的数组"——最适合描述表格/矩阵数据。
声明方式
int scores[5][3] = { // 5行3列
{90, 85, 92}, // 第0行
{88, 79, 95}, // 第1行
{78, 90, 85}, // 第2行
{92, 88, 90}, // 第3行
{85, 80, 88} // 第4行
};
⚠️ 列数不能省略! int arr[][3] ✅ 但 int arr[3][] ❌
下标规则
第一个下标是行,第二个是列,都是从0开始。
双重for循环遍历
int rows = 5, cols = 3;
// 行优先遍历(外层行→内层列)
for (int i = 0; i < rows; i++) {
for (int j = 0; j < cols; j++) {
printf("%d ", scores[i][j]);
}
}
// 列优先遍历(外层列→内层行)
for (int j = 0; j < cols; j++) {
for (int i = 0; i < rows; i++) {
printf("%d ", scores[i][j]);
}
}