欢迎来到天天文库
浏览记录
ID:50351501
大小:1.28 MB
页数:129页
时间:2020-03-08
《C语言程序设计 教学课件 作者 邵军 全书第7章.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第7章 数 组7.1一维数组7.2二维数组7.3数组与运算符7.4数组与函数7.5字符数组与字符串7.6数组应用实例7.1一维数组7.1.1一维数组的定义同其他基本数据类型的变量一样,在C语言中使用数组变量也遵循“先定义、后使用”的原则。 一维数组的定义方式为 类型说明符数组名[常量表达式]; 其中:类型说明符可以是任一种基本数据类型或构造数据类型的说明符。数组的类型实际上是指各个数组元素的数据类型。对于同一个数组,其所有元素的数据类型都是相同的。数组名是用户定义的数组标识符,其书写规则应
2、符合标识符的书写规定,且不能与其他变量同名。方括号中的常量表达式表示数组元素的个数,也称为数组的长度。它同时规定了数组中各个数组元素下标的取值范围。如a[5]表示数组a有5个元素,其下标从0开始计算,因此这5个元素分别为a[0]、a[1]、a[2]、a[3]、a[4]。 例如:inta[10];/*说明整型数组a有10个元素*/floatb[10],c[20];/*说明实型数组b有10个元素,实型数组c有20个元素*/charch[20];/*说明字符数组ch有20个元素*/我们知道,执行到变量定义
3、语句时系统会在内存为变量分配相应的存储空间。例如,为整型变量分配2个字节,为字符型变量分配1个字节。那么,系统是怎样为数组变量分配存储空间的呢? 实际上,系统会分配一段连续的存储空间来依次存储数组中的各个数组元素,如图7-1所示。为了能够访问数组中的各个元素,系统将这段空间的第一个内存单元地址记入数组名,即数组名对应的是数组的首地址。假设首地址为10000H,则数组名对应的地址值即为10000H。因此,数组名与变量名有着本质的区别:程序中直接使用变量名代表的是该变量中存放的数据值;若直接使用数组名则代
4、表的是该数组的首地址,它是一个地址值,而不是数据值。变量可被赋值,而数组名是常量,不能被赋值。图7-1一维数组的存储由于数组元素是顺序存放的,所以很容易可以由数组的首地址计算出数组中第i个元素的存放地址。因此,数组是一种可直接存取的线性结构。 系统为数组分配的存储空间大小由数组类型和数组长度共同决定,即数组所占用的存储空间等于所有数组元素占用空间之和。例如,对于数组定义语句“inta[10];”,由于每个数组元素都是int类型,均需要占用2个字节,所以系统会分配20个字节用来存储该数组。定义数组还应特
5、别注意:(1)不能在方括号中用变量来表示元素的个数,但是可以用符号常量或常量表达式来表示元素的个数。考虑到在程序的后续维护过程中可能需要修改数组的长度,因此较好的做法是用宏来定义数组的长度。 例如:#defineFD5main(){inta[3+2],b[7+FD];…}是合法的。但是下述说明方式是错误的:main(){intn=5;inta[n];…}(2)允许在同一个类型说明中说明多个数组和多个变量。例如:inta,b,c,d,k1[10],k2[20];(3)在数组定义前加const可将数组变为
6、“常量”。例如:constintmonth[]={31,28,31,30,31,30,31,31,30,31,30,31};C语言规定不允许修改常量数组中各元素的值。将程序执行过程中其值不希望改变的数组声明为常量数组有利于编译器发现错误,避免不必要的错误发生。7.1.2一维数组的引用虽然所有的数组元素是用一条语句同时定义的,但我们可能并不期望同时操作所有的数组元素,而有可能只对其中的某个或某几个数组元素进行操作。因此,在使用数组时,我们期望能够对数组元素进行单独操作,也就是单独引用数组元素。 数组元素
7、是组成数组的基本单元,其标识方法为数组名后跟一个下标,下标表示该数组元素在数组中的顺序号。这样系统就可以根据数组名、数组类型及数组元素的下标值计算出该数组元素的存放地址,进而对该数组元素进行读/写操作。一维数组元素也称为单下标变量,其表示形式为 数组名[下标表达式]其中:下标表达式只能为整型常量、整型变量或整型表达式。若为小数,在编译时将自动取整。 这里的下标表达式和数组定义中的常量表达式在形式上有些相似,但这两者具有完全不同的含义。数组定义时方括号中给出的是数组的长度,即下标的有效范围值;而数组
8、元素中的下标是该元素在数组中的位置标识。前者只能是常量,后者可以是常量、变量或表达式。例如,a[5]、a[i]、a[i+j]都是合法的数组元素。数组元素通常也称为下标变量。注意对于“inta[10];”,数组元素a[10]是不合法的引用,因为10超出了该数组的有效下标范围。 必须先定义数组,才能使用下标变量。一个下标变量本质上相当于一个同类型(数组类型)的普通变量。例如,若有定义inta[5],则a[0]、a[1]、a[2
此文档下载收益归作者所有