第6章组
2021/2/24 1 第6章 数组
数组aray)的定义及应用 什么是数组保存相同类型数据的内存单元集合。 维数组的定义 定义格式 类型名数组名[常量表达式1 ,数组名2常量表达式2] 即: type Arraynamelsizel ArrayName2 size2] 2021/224
2021/2/24 2 数组(array)的定义及应用 什么是数组 保存相同类型数据的内存单元集合。 定义格式 类型名 数组名[常量表达式1] [, 数组名2[常量表达式2]……]; 即:type ArrayName1[size1], ArrayName2[size2],…; 一维数组的定义
如:inta5;∥定义了一个整数型数组,数组名为a,数组 /的大小为5,即有5个元素:a0l,a1la12,a|3],a4。 static float yl50];/定义了数组y,每个元素的 ∥值为实型,存储类型为静态的。 char strl10;∥定义了数组str,有10个元素, /每个元素的值为字符。 注:(1)数组必须先定义后使用。 (2)“数据类型”是指数组元素的数据类型, 如 int、char、 register、 static、auto等。 (3)数组名与变量名一样,必须遵循标识符命名 规则 (4)数组元素的下标,是元素相对于数组起始地 1a4址的偏移量,所以从0开始顺序编号
2021/2/24 3 注:(1)数组必须先定义后使用。 (2)“数据类型”是指数组元素的数据类型, 如 int、char、register、static、auto等。 (3)数组名与变量名一样,必须遵循标识符命名 规则。 (4)数组元素的下标,是元素相对于数组起始地 址的偏移量,所以从0开始顺序编号。 如: int a[5]; //定义了一个整数型数组,数组名为a,数组 //的大小为5,即有5个元素:a[0], a[1], a[2], a[3], a[4]。 static float y[50];//定义了数组y,每个元素的 //值为实型,存储类型为静态的。 char str[10]; //定义了数组str,有10个元素, //每个元素的值为字符
(5)“常量表达式”必须用方括号括起来,指的是 数组的元素个数(又称数组长度),它是一个整型 值,其中可以包含常数、符号常量,还可以用宏定 义标识符常量或用 const说明的标识符常量,但不能 包含变量。 如:# define asd256 const int SIzE=500 intx1[ASD*2];定义x1,含512个元素 float yyASD+SLEl;/定义y,含756个元素 char csa; 定义cs,含97个元素 如下说明不允许:intn; cin>>n float tn];∥定义t前不知道n的值 2021/224
2021/2/24 4 (5)“常量表达式”必须用方括号括起来,指的是 数组的元素个数(又称数组长度),它是一个整型 值,其中可以包含常数、符号常量,还可以用宏定 义标识符常量或用const说明的标识符常量,但不能 包含变量。 如:#define ASD 256 const int SIZE=500; … int x1[ASD*2]; //定义x1,含512个元素 float yy[ASD+SIZE];//定义yy,含756个元素 char cs[‘a’]; //定义cs,含97个元素 如下说明不允许:int n; cin>>n; float t[n];//定义t前不知道n的值
(6)数组元素的个数必须是一个正整数。 如:# define pi314 int al [ PI3];∥错误,因为P3是实数 float a2[int(PⅠ*3)l;∥正确 (7)数组名中存放的是一个地址常量,它代表整 个数组的首地址。同一数组中的所有元素, 按其下标的顺序占用一段连续的存储单元。 (8)数组名的作用域与变量的作用域相同。当把 数组定义为局部变量时,作用域为块作用域, 当定义为全局变量时,作用域为文件作用域。 2021/224 5
2021/2/24 5 (6)数组元素的个数必须是一个正整数。 如:#define PI 3.14 … int a1 [PI*3]; //错误,因为PI*3是实数 float a2[int(PI*3)]; //正确 (7)数组名中存放的是一个地址常量,它代表整 个数组的首地址。同一数组中的所有元素, 按其下标的顺序占用一段连续的存储单元。 (8)数组名的作用域与变量的作用域相同。当把 数组定义为局部变量时,作用域为块作用域, 当定义为全局变量时,作用域为文件作用域