二维数组元素访问
与一维数组相同,二维数组的访问也包括读取指定元素和遍历数组元素,下面分别对二维数组元素的两种访问方式进行介绍。
1、 读取指定元素
二维数组元素的访问方式同一维数组元素的访问方式一样,也是通过数组名和索引的方式来访问数组元素,其语法格式如下:
数组名[行][列];
上述语法格式中,行索引应该在所定义的二维数组中的行索引范围内,列索引应该在其列索引范围内。例如,定义二维数组int arr[3][4] = {12,3,4,13,45,0,100,98,72,660,2,88},在读取该数组元素时,行索引的取值范围为0~2,列索引的取值范围为0~3,示例代码如下所示:
a[0][0] //读取第1行第1列的元素12
a[0][1] //读取第1行第2列的元素3
...
a[1][0] //读取第2行第1列的元素45
...
a[2][0] //读取第3行第1列的元素 72
二维数组的索引也是从0开始的,因此a[0][0]是读取第1行第1列的元素,即12。
2、 遍历二维数组
二维数组的遍历也通过循环语句实现,由于二维数组有两个维数,遍历二维数组需要使用双层循环。下面分别使用双层for循环嵌套和双层while循环嵌套遍历二维数组,如例1所示。
例1 test.c
1 #include <stdio.h>
2 int main()
3 {
4 int arr[3][4] = { 12,3,4,13,45,0,100,98,72,660,2,88 };
5 //for循环遍历二维数组
6 printf("使用for循环遍历:\n");
7 for (int i = 0; i < 3; i++) //循环遍历行
8 {
9 for (int j = 0; j < 4; j++) //循环遍历列
10 {
11 printf("%5d", arr[i][j]);
12 }
13 printf("\n"); //每一行的末尾添加换行符
14 }
15 //while循环遍历二维数组
16 printf("使用while循环遍历:\n");
17 int i = 0, j = 0;
18 while (i < 3) //循环遍历行
19 {
20 while (j < 4) //循环遍历列
21 {
22 printf("%5d", arr[i][j]);
23 j++; //在行固定的情况下,列值依次增加
24 }
25 j = 0; //将j归0,以便进行下一轮循环
26 printf("\n");
27 i++; //遍历完一行后,行值加1
28 }
29 return 0;
30 }
例1运行结果如图1所示。
图1 例1运行结果