C语言学习-第六章 利用数组处理批量数据-怎样有定义和引用二维数组

186 阅读2分钟

一起养成写作习惯!这是我参与「掘金日新计划 · 4 月更文挑战」的第13天,点击查看活动详情

二维数组常称为矩阵(matrix)。把二维数组写成行(row)和列(column)的排列形式,可以有助于形象化地理解二维数组的逻辑结构。

怎样定义二维数组

二维数组定义的一般形式:

类型说明符 数组名[常量表达式][常量表达式];
float a[3][4], b[5][10];
// 定义a3 X 434列), b5 X 10510列)

怎样引用二维数组的元素

二维数组元素的表示形式为:

数组名[下标][下标]
// 数组元素可以出现在表达式中,也可以被赋值

二维数组的初始化

  • 分行给二维数组赋初值,如: int a[3][4] = {{1,2,3,4}, {5,6,7,8}, {9,10,11,12}};
  • 可以将所有数据写在一个花括号内,按数组元素在内存中的排列顺序对个元素赋初值。如: int a[3][4] = {1,2,3,4,5,6,7,8,9,10,11,12};
  • 可以对部分元素赋初值。如: int a[3][4] = {{1}, {5}, {9}};
  • 如果对全部元素都赋初值(即提供全部初始数据),则定义数组时对第1维的长度可以不指定,但第2维的长度不能省 int a[3][4] = {1,2,3,4,5,6,7,8,9,10,11,12};等价于int a[][4] = {1,2,3,4,5,6,7,8,9,10,11,12} 系统会根据数据总个数和第2维的长度算出第1维的长度。

示例

  • 将一个二维数组行和列的元素互换,存到另一个二维数组中。 a[2][3] = {{1,2,3}, {4,5,6}}

b[3][2] = {{1,4}, {2,5}, {3,6}}

// 2. 将一个二维数组行和列的元素互换,存到另一个二维数组中去。
    int a[2][3] = {{1,2,3}, {4,5,6}};
    int b[3][2], i, j;
    printf("array: a \n");
    for (i = 0; i <= 1; i++) { // 处理a数组中的一行中各元素
        for (j = 0; j <= 2; j++) { // 处理a数组中某一列中个元素
            printf("%5d", a[i][j]); // 输出a数组的一个元素
            b[j][i] = a[i][j]; // 将a数组元素的值赋给b数组相应的元素
        }
        printf("\n");
    }
    printf("arry b: \n"); // 输出b数组各元素
    for (i = 0; i <=2; i++) { // 处理b数组中一行中各元素
        for (j = 0; j <=1; j++) {           // 处理b数组中一列中个元素
            printf("%5d", b[i][j]); // 输出b数组的一个元素
        }
        printf("\n");
    }