一、二维数组概念
之前学习了一维数组,数组的元素都是内置类型的,如果我们把一维数组做为数组的元素,这时候就是二维数组,二维数组作为数组元素的数组被称为三维数组,二维数组以上的数组统称为多维数组。
二、二维数组的创建和初始化
创建
type arr_name[常量值1][常量值2]
例如:
int arr[3][4];
double num[5][2];
arr和num是数组名,可以自己定义
以int arr[3][4]为例
在数组中“3”表示有3行,“4”表示每行有4个元素
初始化
在创建变量或者数组的时候,给定一些初始值,被称为初始化。
那二维数组如何初始化呢?像一维数组一样,也是使用大括号初始化的。
例如:
不完全初始化
int arr1[3][4]={1,2,3};
int arr2[3][4]={0};
完全初始化
int arr[3][4]={1,2,3,4, 2,4,6,7, 8,1,4,5}
三、二维数组的使用
下标
当我们掌握了二维数组的创建和初始化,那我们怎么使用二维数组呢?
其实二维数组访问也是使用下标的形式的,二维数组是有行和列的,只要锁定了行和列就能唯一锁定数组中的一个元素。
C语言规定,二维数组的行是从0开始的,列也是从0开始的,
如下所示:
我们就可以知道arr[1][3]=1
输入和输出
我们需要用双重for循环来完成二维数组的输入和输出;
第一个for循环是遍历行数;
第二个for循环是遍历每行有多少个元素;
代码如下:
#include <stdio.h>
int main() {
//输入
int arr[3][4] ;
for (int i = 0; i < 3; i++) {
for (int j = 0; j < 4; j++) {
scanf("%d ", &arr[i][j]);
}
}
//输出
for (int i = 0; i < 3; i++) {
for (int j = 0; j < 4; j++) {
printf("%d ", arr[i][j]);
}
printf("\n");
}
return 0;
}
运行代码: