资源描述:
《谢丽聪老师C语言课件-7数组.ppt》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、第七章数组7.1一维数组的定义和引用7.2二维和多维数组的定义和引用7.3字符串和字符数组7.4程序举例(排序)把具有相同类型的若干变量按有序的形式组织起来。这些按序排列的同类数据元素的集合称为数组。一个数组可以分解为多个数组元素,这些数组元素可以是基本数据类型或是构造类型。数组有数值数组、字符数组、指针数组、结构数组等各种类别。7.1一维数组的定义和使用7.1.1一维数组的定义方式类型说明符数组名[常量表达式];任一种基本数据类型或构造数据类型用户定义的数组标识符表示数据元素的个数,也称为数组的长度例如:inta[10];floatb[10],c[20];ch
2、arch[20];说明整型数组a,有10个元素。说明实型数组b,有10个元素,实型数组c,有20个元素。说明字符数组ch,有20个元素。注意:数组元素与变量一样地使用(数组不能与变量一样地使用)。数组元素与变量主要区别:1.它们的名字形式不同2.同一数组中各元素必须同类型3.数组名不能与其它变量名相同。例如:main(){inta;floata[10];……}×变量重名4.方括号中常量表达式表示数组元素的个数,但是其下标从0开始计算。因此5个元素分别为:a[0],a[1],a[2],a[3],a[4]5.定义时不能在方括号中用变量来表示元素的个数,但是可以是符号
3、常数或常量表达式。6.允许在同一个类型说明中,说明多个数组和多个变量。例如:inta,b,c,d,k1[10],k2[20];例如:#defineFD5main(){inta[3+2],b[7+FD];……}main(){intn=5;inta[n];……}×√定义时不能用,但引用时可以7.1.2一维数组元素的引用数组元素是组成数组的基本单元,也是一种变量,其标识方法为数组名后跟一个下标,表示元素在数组中的顺序号。数组元素的一般形式为:数组名[下标]其中下标只能为整型常量或整型表达式。如为小数时,C编译将自动取整。例如:a[5]a[i+j]a[i++]都是合法的
4、数组元素。定义时不能用,引用时可以数组元素通常也称为下标变量。必须先定义数组,才能使用下标变量。在C语言中只能逐个地使用下标变量,而不能一次引用整个数组。例如:输出有10个元素的数组必须使用循环语句逐个输出各下标变量:for(i=0;i<10;i++)printf("%d",a[i]);而不能用一个语句输出整个数组。下面的写法是错误的:printf("%d",a);×√例7.1voidmain(){inti,a[10];for(i=0;i<=9;i++)a[i]=i;for(i=9;i>=0;i--)printf("%d",a[i]);}a[0]0a[1]1a[
5、2]2a[3]3a[4]4a[5]5a[6]6a[7]7a[8]8a[9]9运行结果:9876543210空格逐一赋值逐一输出例7.2voidmain(){inti,a[10];for(i=0;i<10;)a[i++]=i;for(i=9;i>=0;i--)printf("%d",a[i]);}a[0]0a[1]1……a[9]9a[9]9a[8]8……a[0]0运行结果:9876543210例7.3voidmain(){inti,a[10];for(i=0;i<10;)a[i++]=2*i+1;for(i=0;i<=9;i++)printf("%d",a[i])
6、;printf("%d%d",a[5.2],a[5.8]);}运行结果:1357911131517191111a[0]2*0+1=1a[1]2*1+1=3a[2]2*2+1=5……a[5]2*5+1=11……a[9]2*9+1=197.1.3一维数组的初始化给数组赋值的方法除了用赋值语句对数组元素逐个赋值外,还可采用初始化赋值和动态赋值的方法。初始化赋值的一般形式为:类型说明符数组名[常量表达式]={值,值……值};其中在{}中的各数据值即为各元素的初值,各值之间用逗号间隔。例如:inta[10]={0,1,2,3,4,5,6,7,8,9};相当于a[0
7、]=0;a[1]=1...a[9]=9;对数组的初始化赋值还有以下几点规定:1)可以只给部分元素赋初值。当{}中值的个数少于元素个数时,只给前面部分元素赋值。例如:inta[10]={0,1,2,3,4};表示只给a[0]~a[4]5个元素赋值,而后5个元素自动赋0值。2)只能给元素逐个赋值,不能给数组整体赋值。例如给十个元素全部赋1值,只能写为:inta[10]={1,1,1,1,1,1,1,1,1,1};而不能写为:inta[10]=1;3)如给全部元素赋值,则在数组说明中,可以不给出数组元素的个数。例如:inta[5]={1,2,3,4,5};可写为:in
8、ta[]={1,2,3,