二维数组的概念:数组的元素是内置类型的,如果我们把一维数组做为数组的元素,这时候就是二维数组,二维数组做为数组元素的数组被称为三维数组,二维数组以上的数组统称为多维数组。
例如:
1 |
数组元素
1 | 2 | 3 | 4 |
2 | 3 | 4 | 5 |
int | int | int | int |
多维数组
二维数组的创建:type arr-name[常量1][常量2] 例如:int arr[3][4] ,3表示数组有3行,4表示每行有四列。
二维数组的初始化:在创建变量或数组的时候,给定一些初始值,被称为初始化。
不完全初始化:int arr[3][2]={1,2};
完全初始化:int arr[3][4]={1,2,3,4,5,6,7,8,9};
按照行初始化:int arr4[2][3]={{1,2},{3,4},{2,5}};
初始化时可以忽略行,但不能忽略列。 例如:int arr5[2][3]={1,2,3};
二维数组的下标:二维数访问也是使用下标的形式 ,二维数组是有行和列的,只要锁定了行和列就能唯一锁定数组中的一位数组。
二维数组的输入和输出:
输入 输出
二维数组在内存中的存储:
输出结果来看,每行内部的每个元素都是相邻的,地址之间相差4个字节,跨行位置处的两个元素之间也是相差4个字节,所以二维数组中的每个元素都是相邻的 。
c99中的变长数组:
在创建数组的时候,数组大小的指定只能使用常量,常量表达式,或者如果我们初始化数据的话,可以省略数组的大小。
例如:int n=a+b; int arr[n]; 数组arr就是变长数组,因为它的长度取决于变的值, 运行时才能知道n 是多少,所以变长数组的大小不能初始化。