9 第数 7
第9章 数组
91数组的概念 92一维数组 93多维数组的定义和使用 94字符数组及字符串 9.5数组作函数参数 7
9.1 数组的概念 9.2 一 维 数 组 9.3 多维数组的定义和使用 9.4 字符数组及字符串 9.5 数组作函数参数
91数组的概念 数组是指一组相同类型数据的有序集合,由 一个统一的数组名标识这一组数据。数组的每 个成员称作数组元素,用下标来标识数组元 素在该数组中的位置 7
9.1 数组的概念 数组是指一组相同类型数据的有序集合,由 一个统一的数组名标识这一组数据。数组的每 一个成员称作数组元素,用下标来标识数组元 素在该数组中的位置
把数学中的集合和数组对照一下。 假如有集合 S={1,2,3,4,5,6,7,8,9,10} 要表示集合中某个元素,数学中可以描述为 S;,其中s是集合的名字,示该元素在集合中的 序号。为了表示C语言数组中的每一个元素,也 必须确定数组名和该元素在数组中的位置信息。 数组名和该元素在数组中的位置信息是确定数组 元素两个不可缺少的要素。在C语言中,数组元 素的位置信息是由下标表示的,下标等同于集合 中的序号
把数学中的集合和数组对照一下。 假如有集合 s={1,2,3,4,5,6,7,8,9,10} 要表示集合中某个元素,数学中可以描述为 si,其中s是集合的名字,i表示该元素在集合中的 序号。为了表示C语言数组中的每一个元素,也 必须确定数组名和该元素在数组中的位置信息。 数组名和该元素在数组中的位置信息是确定数组 元素两个不可缺少的要素。在C语言中,数组元 素的位置信息是由下标表示的,下标等同于集合 中的序号
92一维数组 921一维数组的定义 由单一下标标识数组元素的数组称为一维数 组。 一维数组的定义形式为: 类型标识符数组名[元素个数|; 数组名必须符合标识符的规定。元素个数, 又称为数组长度,只能用整型常量表达式表示。 数组和变量一样,也必须占据一定的存储空间。 进行存储空间分配时,系统根据数组的长度和数 组元素的类型确定分配存储单元的个数,C语言 中数组元素的存储是连续的,数组名就是所分配 内存空间的起始地址。 7
9.2 一 维 数 组 9.2.1 一维数组的定义 由单一下标标识数组元素的数组称为一维数 组。 一维数组的定义形式为: 类型标识符 数组名[元素个数]; 数组名必须符合标识符的规定。元素个数, 又称为数组长度,只能用整型常量表达式表示。 数组和变量一样,也必须占据一定的存储空间。 进行存储空间分配时,系统根据数组的长度和数 组元素的类型确定分配存储单元的个数,C语言 中数组元素的存储是连续的,数组名就是所分配 内存空间的起始地址
如整型数组a,共有10个元素,每个元 素分配2个字节,共分配2×10个字节的存储 单元, 2000H 2001H 第0个元素 2002H 第1个元素 2003H 2012H 78 2013H 第9个元素 图93数组a的存储示意图 7
如整型数组a,共有10个元素,每个元 素分配2个字节,共分配2×10个字节的存储 单元, 2000H 2001H 2002H 2003H 2012H 2013H 5 6 100 78 第 0 个元素 第 1 个元素 第 9 个元素 图9.3 数组a的存储示意图
922一维数组元素的初始化 数组初始化的一般形式如下: 类型标识符数组名元素个数}={元素值表 列} (1){中的数组元素值与数组的每一个元素具备左 对应关系。 (2)8中的元素值表列,可以是数组所有的元素的 初值,也可以是前面部分元素的初值,元素值之间使 用逗号分割。 (3)当给数组部分元素赋初值时,其余元素的值为 (4)当对全部元素赋初值,数组长度可以省略,但 ]不能省略。 (5)数组初始化的赋值方式只能用于数组的定义, 7 定义之后再赋值只能一个元素一个元素地赋值
9.2.2 一维数组元素的初始化 数组初始化的一般形式如下: 类型标识符 数组名[元素个数]={元素值表 列}; (1){}中的数组元素值与数组的每一个元素具备左 对应关系。 (2){}中的元素值表列,可以是数组所有的元素的 初值,也可以是前面部分元素的初值,元素值之间使 用逗号分割。 (3)当给数组部分元素赋初值时,其余元素的值为 0。 (4)当对全部元素赋初值,数组长度可以省略,但[ ]不能省略。 (5)数组初始化的赋值方式只能用于数组的定义, 定义之后再赋值只能一个元素一个元素地赋值
923—维数组元素的引用 定义一个数组,相当于一次定义了许多变量。 维数组元素的引用形式: 数组名[下标 例如:a0、ak、ai+1俘等。 下标可以是整型常量、整型变量或者整型表 达式,其范围是0~L-1(L表示数组长度)。 C语言不检查数组的边界。所以当引用数组 元素的下标超越边界时,系统不会提示错误, 但是可能导致其他变量甚至程序被破坏 7
9.2.3 一维数组元素的引用 定义一个数组,相当于一次定义了许多变量。 一维数组元素的引用形式: 数组名[下标] 例如:a[0]、a[k]、a[i+1]等。 下标可以是整型常量、整型变量或者整型表 达式,其范围是0~L −1(L表示数组长度)。 C语言不检查数组的边界。所以当引用数组 元素的下标超越边界时,系统不会提示错误, 但是可能导致其他变量甚至程序被破坏
例9.1数组元素引用示例。 示例1: nalr n int 1, a10 for(i=0;i<10;i+) scanf("%d", &ali) for(i=0;<10;i++) printf("%5d", a iD) printf("n"); 7
例9.1 数组元素引用示例。 示例1: main( ) { int i, a[10]; for (i=0;i<10;i++) scanf("%d",&a[i]); for (i=0;i<10;i++) printf("%5d",a[i]); printf("\n"); }
924一维数组举例 使用一维数组可以实现实际应用中的多 种数学模型,如队列、数列、堆栈等数据 结构。在一维数组中,数组中的各个元素 都是相关联的,它们是相同数据类型的数 据的集合。在实际应用中,程序设计者应 注意分析数据间的关系,合理地使用数组 元素,才能编制出高效率的程序。本节从 下面几个例子介绍一维数组的编程方法。 7
9.2.4 一维数组举例 使用一维数组可以实现实际应用中的多 种数学模型,如队列、数列、堆栈等数据 结构。在一维数组中,数组中的各个元素 都是相关联的,它们是相同数据类型的数 据的集合。在实际应用中,程序设计者应 注意分析数据间的关系,合理地使用数组 元素,才能编制出高效率的程序。本节从 下面几个例子介绍一维数组的编程方法