(1)创建和初始化
创建:数组是一类相同类型元素的集合
创建方式:type_t arr_name [const_n]
初始化:在创建数组的同时给数组内容一些合理的初始值,元素个数按初始化内容决定。
例: int arr[10] = {0}
(2)使用
下标引用操作符: [ ]
通过下标访问方式使用
(3)存储
数组在内存中连续存放
例: &arr[0] = 0046FDB4
&arr[1] = 0046FDB8
&arr[2] = 0046FDBC
(4)指针访问
数组的数组名是指针首元素的地址。
通过对数组名+整数的运算,可以获取到数组中每个元素的地址。
(5)长度计算
若声明中未给出数组的长度,编译器就会把数组的长度设置为刚好能够容纳所有的初始值的长度。
2. 多维数组
若某个数组的维数不止1个,就被称为多维数组。
(1)创建和初始化
例: int matrix[6][10];
Int d[3][5][7]
(2)使用
通过下标访问方式使用
(3)存储
|
|
|
|
|
|
(4)指针访问
指针指向整个数组
例: int vector[10], * vp = vector;
(5)长度计算
编译器初始化列表中包含的初始值个数,即可推算出其他维数。
3. 总结
(1)在绝大多数表达式中,数组名的值是指向数组的第1个元素的指针,这个规则有两个例外:sizeof返回整个数组所占用的字节而不是一个指针所占用的字节;&单目操作符返回一个指向数组的指针,而不是一个指向数组第1个元素的指针的指针。
(2)除优先级不同以外,下标表达式array[value]和间接访问表达式*(array+(value))是一样的。
(3)指针和数组并不想等。
(4)数组名作为函数参数传递时,实际传递给函数的是一个指向数组第1个元素的指针。
(5)数组也可以用初始值列表进行初始化,初始值列表就是由一对花括号包围的一组值。
(6)多维数组实际上是一维数组的一种特型,就是它的每个元素本身也是一个数组。