一维数组
- 创建
结构: 类型 数组名[ 数组长度(可省略) ]; // [ ] --> 数组下标引用操作符。
- 初始化
完全初始化:
例:int arr[3] = {1,2,3}; // 数组下标是从0开始。
不完全初始化:
例:int arr[3] = {1,2}; // 此时数组未初始化的值自动补为0。
- 遍历
利用循环遍历打印数组
- 内存中的存储方式
打印地址用 "%p" ,打印的结果为十六进制。
由打印结果可以看出,创建的数组是一块连续的地址,每个数组元素占用4个字节。
二维数组
- 创建
结构: 类型 数组名[行][列]; //初始化时,行可以省略,列不能省略。
- 初始化
与一维数组相同
这里三种定义数组的方式都相同,将所有元素写在一行用逗号分开打印方式是将一行打印完再接着打印第二行,以此类推。
由于二维数组与一维数组类似,所以我们在初始化时还可以用定义一维数组的方式一行一行的定义二维数组。如上:
- 遍历
外层循环行,内层循环列。
- 内存中的存储方式
如下:与一维数组相同,在我们的理解中是一个三行五列的值,但在内存中仍然是一段连续的空间。每个元素占用4个字节。
作为函数参数
首先,数组作为函数参数时不能仅仅将数组名(指向的只有数组的第一个元素)作为实参,还要将数组长度一并传递。
数组长度的计算方法。因为此时定义的数组为int型(占4个字节),所以sizeof(arr)为整个数组占用的字节数,sizeof(arr[0])为数组第一个元素占用的字节,相除便会得到数组的长度。