二维数组的创建
1.二维数组的概念
上一篇学习的数组叫做一维数组,数组的元素都是内置类型的,如果我们把一维数组作为数组的元素,这时候就是二维数组,二维数组作为数组元素的数组被称为三维数组,二维数组以上的数组统称为多维数组。
2.二维数组的创建
二维数组的定义如下:
上述代码出现的信息,3表示数组有三行,5表示数组有5列,int表示数组的每个元素是整型类型,arr是数组名,可以根据自己的意思指定数组名,data数组意思与其基本一致。
二维数组的初始化
在创建变量或数组的时候,给定一些初始值,称为初始化。
二维数组也像一维数组一样,使用大括号进行初始化。
1.不完全初始化
2.完全初始化
3.按照行初始化
4.初始化时省略行,但是不能省略列
二维数组的使用
1.二维数组的下标
二维数组的访问也是使用下标形式的,二维数组是有行有列的,只要锁定了行和列就能锁定数组中的一个元素。
其中,C语言规定二维数组的行是从0开始的,列也是从0开始的,如下图所示:
其中左边的绿色数字表示行,上方的蓝色数字表示列,都是从0开始的。
2.二维数组的输入和输出
访问二维数组的整个数组,只要按照一定的规律产生所有的行和列的数字就行,以上一段代码中的arr为例, 行的选择范围是0-2,列的选择范围是0-4,所以我们可以借用循环实现所生成的下标:
二维数组在内存中的存储
像一维数组一样,我们如果想研究二维数组在内存中的存储方式,也是可以打印出所有的元素地址,代码如下:
二维数组中,每一个元素之间都是相邻的,地址之间相差4个字节,跨行位置所处的两个元素,之间也是4个字节,所以二维数组中的每个元素都是连续存放的。
C99中的变长数组
在C99标准之前,C语言在创建数组的时候,数组的大小只能指定常量,常量表达式或者如果我们初始化数据的话,我们可以省略数组大小。
代码如下:理解即可。