C语言二维数组

  • Post category:C

下面我将详细讲解C语言二维数组的使用攻略。

什么是C语言二维数组?

C语言二维数组是一种特殊的数组,由多个一维数组组合而成,每个一维数组又由多个元素组成。它可以看作是把一个表格里的数据存储在内存中,方便对数据的处理。

定义和初始化二维数组

定义和初始化二维数组的基本语法如下所示:

数据类型 数组名[行数][列数] = {{数据1, 数据2, ...}, {数据1, 数据2, ...}, ...};

其中,数据类型表示数组中存储的数据类型,数组名为自定义的数组名,行数和列数分别表示数组的行和列,可以是任意整数。花括号内部的数据表示在数组中存储的具体数据。

例如,定义一个3行4列的整型二维数组,并将数组初始化为1~12之间的随机数,代码如下:

#include <stdio.h>
#include <stdlib.h>   // 需要用到rand()和srand()

int main()
{
    int arr[3][4] = {{0}};   // 定义一个3行4列的整型数组,并将其初始化为0

    srand((unsigned)time(NULL));    // 用当前时间作为随机种子
    for(int i = 0 ; i < 3 ; i++){   // 遍历每一行
        for(int j = 0 ; j < 4 ; j++){   // 遍历每一列
            arr[i][j] = rand() % 12 + 1;   // 生成1~12之间的随机数
        }
    }

    for(int i = 0 ; i < 3 ; i++){   // 遍历每一行
        for(int j = 0 ; j < 4 ; j++){   // 遍历每一列
            printf("%-3d", arr[i][j]);   // 输出当前元素的值,%-3d表示左对齐,占位3个字符
        }
        printf("\n");   // 换行输出下一行的数据
    }

    return 0;
}

运行结果如下:

2  7  1  11 
5  10 11 7  
5  11 1  8 

二维数组的遍历

二维数组的遍历是指按照一定的顺序依次访问数组中的每个元素。二维数组的遍历可以使用两重循环实现,其中外层循环控制行数,内层循环控制列数。

例如,对上面的示例代码进行修改,使用两重循环遍历并输出数组中的每个元素,代码如下:

#include <stdio.h>
#include <stdlib.h>

int main()
{
    int arr[3][4] = {{0}};

    srand((unsigned)time(NULL));
    for(int i = 0 ; i < 3 ; i++){
        for(int j = 0 ; j < 4 ; j++){
            arr[i][j] = rand() % 12 + 1;
        }
    }

    printf("数组元素的值为:\n");
    for(int i = 0 ; i < 3 ; i++){
        for(int j = 0 ; j < 4 ; j++){
            printf("%-3d", arr[i][j]);
        }
        printf("\n");
    }

    return 0;
}

输出结果如下:

数组元素的值为:
7  10 7  2  
11 6  3  4  
8  4  7  4

综合示例

下面的示例代码演示了如何定义一个4行3列的字符型二维数组,并使用循环遍历并输出其中的每个元素:

#include <stdio.h>

int main()
{
    char arr[4][3] = {"AB", "CD", "EF", "GH"};   // 定义并初始化一个4行3列的字符型二维数组

    printf("数组元素的值为:\n");
    for(int i = 0 ; i < 4 ; i++){   // 遍历每一行
        for(int j = 0 ; j < 3 ; j++){   // 遍历每一列
            printf("%c ", arr[i][j]);   // 输出当前元素的值
        }
        printf("\n");   // 换行输出下一行的数据
    }

    return 0;
}

运行结果如下:

数组元素的值为:
A B 
C D 
E F 
G H 

以上就是C语言二维数组的使用攻略,希望能够帮助到你。