文章目录
一、⼆维数组的创建
1.二维数组的概念:
前⾯学习的数组被称为⼀维数组,数组的元素都是内置类型的,如果我们把⼀维数组做为数组的元素,这时候就是⼆维数组,⼆维数组作为数组元素的数组被称为三维数组,⼆维数组以上的数组统称为多维数组
2.二维数组的创建:
格式为:类型 数组名 [常量值][常量值],比如:
int arr[3][4];
其中,类型可以限制二维数组中元素的数据类型,[]中的常量值分别代表数组有多少行,多少列,比如:
int arr[3][4];
//int表示二维数组中存放的元素是整型
//3代表二维数组有3行,4代表二维数组有4列
//arr是二维数组的名称
二、⼆维数组的初始化
1.不完全初始化:
对只初始化二维数组中的部分内容,剩下的元素自动初始化为0,例如:
int arr1[3][5] = {1,2};
//将第一行的前两个元素分别初始化为1,2
//剩余的元素初始化为0
int arr2[3][5] = {0};
//将所有元素初始化为0
2.完全初始化:
直接对二维数组进行完全初始化,例如:
int arr3[3][5] = {1,2,3,4,5, 2,3,4,5,6, 3,4,5,6,7};
3.按行对二维数组进行初始化:
按行对二维数组初始化时,可以将每行单独初始化,用{}括起来,此时可以实现不将每一行初始化完全,也可以初始化下一行,例如:
int arr4[3][5] = {{1,2},{3,4},{5,6}};
//只将每行的前两个元素初始化,其它的元素还是为0
4.注意:
二维数组初始化时,可以省略行,但是不能省略列,例如:
int arr5[][5] = {1,2,3};
int arr6[][5] = {1,2,3,4,5,6,7};
int arr7[][5] = {{1,2}, {3,4}, {5,6}};
三、⼆维数组的使用
1.二维数组的下标:
当我们想访问二维数组中的元素时,也需要使用下标,行和列的下标都是从0开始,比如:
如果我们想访问4这个元素,就要找到它们的行和列,在这里是1行1列,所以写成arr[1][1],如:
2.二维数组的输入以及输出:
(1)对二维数组进行输出,比如有如下数组:
int arr[3][5] = {1,2,3,4,5, 2,3,4,5,6, 3,4,5,6,7};
我们如何将二维数组arr的元素完整打印出来呢?我们之前学习了如何用循环打印一维数组,我们说二维数组是将一维数组作为元素,所以这里我们使用两个循环就可以将二维数组打印出来,比如:
(2)对二维数组进行输入:
与输出十分类似,只需要将printf改为scanf即可,例如:
四、⼆维数组在内存中的存储
像⼀维数组⼀样,我们如果想研究⼆维数组在内存中的存储⽅式,我们也是可以打印出数组所有元素的地址的,如图:
可以看出在内存中二维数组中的每个元素都是挨着的,所以⼆维数组中的每个元素都是连续存放,了解了二维数组在内存中的存储,对我们以后学习指针有很大帮组