#M8304. 数组
数组
数组
可以用来存储一系列相同类型的数据,并且这些数据在内存中是连续存储的。(线性结构、顺序结构)
数组的定义一般形式
1. 数据类型 数组名[数组长度];
2. 数据类型 数组名[数组长度] = {值1, 值2...};
3. 数据类型 数组名[ ] = {值1,值2...};
类型名:指定数组中每个元素的类型。
数组名:是数组变量(数组)的名称,是一个合法的标识符。
数组长度:是一个整型常量表达式,设定数组的大小。
声明及初始化
int a[1005]; //如果定义在主函数之上,数组 a 所有元素的值赋为 0
int b[5]={1,2,3,4.5};//b[0]、b[1]、b[2]、b[3]、b[4]的值分别赋为1,2,3,4,5
int c[5]={1,2,3}; //c[0]、c[1]、c[2]、c[3]、c[4]的值分别赋为1,2,3,0,0
int d[5]={0}; //将数组d中5个元素的值全赋为0
int e[]={1,2,3}; //e[0]、e[1]、e[2]的值分别赋为1,2,3,且将数组的长度定义为3
【注意事项】
1.定义一个数组,需要明确数组变量名,数组元素的类型和数组的大小(即数组元素的数量)。
2.局部数组默认值为野值(随机值),全局数组默认值为 0;
3.数组长度可以使是一个常量或包含运算符的表达式;
int n = 10;
int a[n]; // 此定义方式并不适合所有的编译器, 只有支持 C99 标准的编译器才支持这种定义方式, 否则在编译时会报错
4.大数组须定义为全局数组,在局部定义大数组会爆栈;
数组的使用
数组元素引用一般形式:
数组名[下标]
数组元素值的修改一般形式:
数组名[下标]=值;
【注意事项】
1.C++规定,只能逐个引用数组元素的值,而不能一次引用整个数组中全部元素的值
2.下标可以是整数表达式,使用数组时下标不能越界(上界和下界),否则会造成内存的混乱,但不会导致编译错误,它的合理取值范围是[0~数组长度-1]。
3.数组名是常量,不可以进行赋值操作;整型数组输出数组元素时,输出数组名得到的是首元素地址而不是批量元素。
计算占用空间
计算数组占用内存总空间的大小,主要有两种方式
-
数组相当于有多个变量组成,可以通过单个数组元素所占用的空间乘以数组长度。
-
也可以使用sizeof(数组名)得到整个数组占用的内存大小。
int array[10];
printf("array占用的内存大小为 = %d\n",sizeof(array)); // array占用的内存大小为 = 40
printf("array占用的内存大小为 = %d\n",sizeof(int) * 10); // array占用的内存大小为 = 40