资源描述:
《厦门理工学院11级C语言 第4章_数组ppt课件.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第四章数组2本章主要内容4.1一维数组的定义、初始化和引用4.2二维数组的定义、初始化和引用4.3字符数组与字符串数组是C语言中提供的一种专门用来组织批量数据的数据类型,它可以将性质相同且需要共同参与某项操作的多个数据有效地组织起来,是一种应用十分频繁且非常重要的数据类型。对批量数据进行处理的情况在实际问题中经常会遇到,如对一组数据进行排序、求平均值;在一组数据中查找某一数值;矩阵运算;表格数据处理等等。假设要输入全年级100个学生的成绩,然后排出名次。显然定义100个变量来存放这100个学生的成绩是不现实也是不可取的,然而利用数组类型来解决这一问题却非常方便。所谓数组就是一批同类型数
2、据的有序集合,每个数组在内存中占一片连续的存储空间,用一个统一的数组名和下标来唯一确定数组中的元素,其中每一个元素通常称为下标变量。只有一个下标的数组称为一维数组,有二个下标的数组称为二维数组,依此类推。344.1一维数组的定义、初始化和引用4.1.1一维数组的定义方式与前面章节介绍的基本数据类型变量的处理方式相同,数组作为带有下标的变量,也需要经历定义、初始化和引用3个阶段。一维数组定义的一般形式为:类型说明符数组名[常量表达式]其中:类型说明符用于说明数组的基类型,即数组中每一个元素的类型,可以是任一种基本数据类型或构造数据类型。数组名是用户定义的数组标识符,应符合标识符的书写规定
3、。在同一个函数中数组名不能与其它变量名相同。方括号中的常量表达式表示数组元素的个数,也称为数组的长度。例如:inta[10];/*说明整型数组a,有10个元素*/floatscore[20];/*说明实型数组score,有20个元素*/charletter[26];/*说明字符数组letter,有26个元素*/54.1一维数组的定义、初始化和引用对于数组类型说明应注意以下几点:1、允许在同一个类型说明中,说明多个数组和多个变量。如:inta,b,c,d,k1[10],k2[20];2、方括号中的常量表达式通常取整型常量或整型常量表达式(包括符号常量)。如:#defineN20/*用此命
4、令行定义符号常量N,方便程序修改*/floatscore[N];/*正确的定义方式,提倡使用*/C语言中不允许用变量下标形式对数组进行动态定义。如n为一个普通变量,定义:floatscore[n];/*不正确的定义方式*/是非法的。即使在数组定义语句前用变量初始化、用赋值语句或用输入函数scanf()对n进行了赋值,上面这条语句仍然是非法的。64.1一维数组的定义、初始化和引用3、与其他高级语言(如PASCAL、BASIC)不同,C语言中规定数组元素的下标总是从0开始,例如inta[10];说明整型数组a,有10个元素。这10个元素是:a[0],a[1],a[2],a[3],a[4],
5、a[5],a[6],a[7],a[8],a[9];注意最后一个元素是a[9],而不是a[10],该数组不存在数组元素a[10]。并且特别值得注意的是,C编译器对数组下标越界不作检查。如上述数组不存在数组元素a[10],但是在程序中不小心引用了a[10],程序编译时仍认为是合法的。但程序运行后可能会出现逻辑错误,因为a[10]已不是数组中的元素,越界的操作可能破坏a[9]后面的数据或程序,要特别引起注意。74.1一维数组的定义、初始化和引用4、在说明一个数组后,系统会在内存中分配一段连续的空间用于存放数组元素,并且数组名代表首地址。如说明inta[10];则其在内存中的存放形式如图4-1
6、所示:a[0]a[1]a[2]a[3]a[4]a[5]a[6]a[7]a[8]a[9]图4-1数组a在内存中的存放形式在内存中一维数组所占用的总字节数为:数组长度*sizeof(基类型),如在TurboC环境中,整型数组a所占用的总字节数为:10*2=20。从上面可以发现每一个元素都相当于一个整型变量,其中可存放一个整型数值。84.1一维数组的定义、初始化和引用4.1.2一维数组的初始化数组与简单变量一样,也可以对各元素初始化。数组初始化赋值是指在数组定义时给数组元素赋予初值。数组初始化是在编译阶段进行的,这样将减少运行时间,提高效率。初始化赋值的一般形式为:类型说明符数组名[常量表达
7、式]={初值表}其中{初值表}中的各数据值即为各元素的初值,各值之间用逗号分隔。例如:inta[10]={0,1,2,3,4,5,6,7,8,9};相当于a[0]=0;a[1]=1;...a[9]=9;C语言对数组的初始化赋值还有以下几点规定:1、可以只对部分元素赋初值。当{}中值的个数少于元素个数时,只给前面部分元素赋值。例如:inta[10]={0,1,2,3,4};表示只给a[0]~a[4]5个元素赋值,而后5个元素自动赋0值。如果想使一