C语言程序设计(07776-1)第5章数组课案.ppt
第5章 数组 主要内容 一维数组 二维数组 字符数组 程序案例 小结 5-1 一维数组 一维数组的定义 一维数组元素的引用 一维数组的初始化 一维数组的应用 5-1-1 一维数组的定义 一维数组的定义方式为: 类型说明符 数组名[常量表达式]; 说明 类型说明符 类型说明符用来定义数组中各个数据元素的类型,包括整数型、浮点型、字符型、指针型以及结构体和共用体。 数组名 数组名即数组的名称,它代表数组所占存储空间的首地址。数组名、变量名、标识符的命名规则相同。因为在C语言中,将数组也当成一个变量来看待。 常量表达式 常量表达式表示数组中元素的个数,即:数组的大小,它必须是由常量或符号常量组成的表达式,不能含有变量。即C语言不允许对数组的大小作动态定义。这点是与PASCAL、BASIC语言不同的。 接上 下标 下标决定了元素在数组中的次序。数组都是以0作为第一个元素的下标,设n为一个常量,则下标的取值范围是[0,n-1]。 存储方式 在内存中是以字节为基本单位来表示存储空间的,并且在内存中只能按照顺序的方式存放数据。一维数组中的各个元素在内存中是按照下标规定的顺序存放在内存中的。 数组元素存放方式 5-1-2 一维数组元素的引用 在已经定义了一个数组以后,怎么来使用数组中的元素呢?C语言规定只能逐个地引用数组元素而不能整体引用,即不能一次引用数组中的全部元素。 一维数组元素的引用格式:数组名[下标] 说明 数组必须先定义,后引用。 数组名是表示要引用哪一个数组中的元素。 下标往往隐含有特定的含义。 一般来说,一维数组的使用往往与单循环联系在一起。 对于下标出界,C语言不进行语法检查。 5-1-3 一维数组的初始化 变量的初始化是指变量在被说明的同时被赋予一个初值。数组的初始化操作是在定义数组的同时就规定数组中有什么样的内容,即各个数组元素取什么值。 对数组的初始化操作可以采取以下方式: static类型说明符 数组名[n]={值1,值2,…,值n}; 说明 对数组的初始化操作只能在定义数组时进行。C语言规定:只有静态存储数组和外部存储(extern)数组才能初始化。 常量表达式n表示数组含有的元素个数。 大括号中的内容即为数组的初值。值1将赋给第0个元素、值2将赋给第1个元素,等等。 数组初始化时,初值用“,”分开,整体再加一对“{}”括起来,最后以“;”表示结束。 在对数组元素全部赋初值时,可以不指定数组的大小。在省略了数组的大小后,系统将根据初值的个数来决定数组的大小。 static int a[]={1,2,3,4,5}; 这个数组定义语句相当于static int a[5]={1,2,3,4,5};。 对数组初始化时, 可以只给最前一部分数组元素赋初值,其余的数组元素赋0。 如果想使数组中的元素全部被赋为0,则可以这样写: static int a[5]={0,0,0,0,0}; (要写5个0) 或:static int a[5]={0}; 赋初值后数组内容 5-2 二维数组 二维数组的定义 二维数组元素的引用 二维数组的初始化 二维数组的应用 5-2-1 二维数组的定义 当数组中的每个元素带有两个下标时,称这样的数组为二维数组,其中存放的是有规律地按行、列排列的同一类型数据。所以二维数组中的两个下标,一个是行下标,一个是列下标。 在C语言中二维数组定义的一般形式为: 类型说明符 数组名[常量表达式1][常量表达式2] 说明 “类型说明符”、“数组名”及“常量表达式”的含义与一维数组中的相关定义相同。 二维数组中有两个下标,每一维的下标都是从0算起。 5-2-2 二维数组元素的引用 二维数组元素的引用格式为: 数组名[行下标表达式][列下标表达式] 说明 二维数组的引用与一维数组的引用基本上是一样的,只不过二维数组的引用要使用两个下标。数组元素可以出现在表达式中,也可以被赋值。 二维数组的输入和输出常常通过二重循环来实现,一个下标对应一重循环控制变量,外循环对应下标1,内循环对应下标2。 要注意定义数组和引用数组元素的差别。 5-2-3 二维数组的初始化 分行初始化 线性初始化 只对部分元素初始化 如果将数组的所有元素全部赋值的话,可以省略第一维的长度 分行初始化 这种初始化是对二维数组进行初始化的最基本形式。二维数组有几行,就有几个用逗号分隔的大括号;有几列,每个大括号中就有几个用逗号分隔的数值;最后将所有的初始化内容用一对大括号括起来。 线性初始化 二维数组的存储是连续的,因此,可以用初始化一维数组的办法来初始化二维数组,即将所有的初始值全部连续地写在一对大括号里。 只对部分元素初始化