#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.数组名是常量,不可以进行赋值操作;整型数组输出数组元素时,输出数组名得到的是首元素地址而不是批量元素。

计算占用空间


计算数组占用内存总空间的大小,主要有两种方式

  1. 数组相当于有多个变量组成,可以通过单个数组元素所占用的空间乘以数组长度。

  2. 也可以使用sizeof(数组名)得到整个数组占用的内存大小。

int array[10]; 

printf("array占用的内存大小为 = %d\n",sizeof(array));     // array占用的内存大小为 = 40

printf("array占用的内存大小为 = %d\n",sizeof(int) * 10); 	// array占用的内存大小为 = 40