下面我将详细讲解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语言二维数组的使用攻略,希望能够帮助到你。