资源描述:
《数组的定义 - 副本.ppt》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、第七章数组2、一维数组的定义和引用3、二维数组的定义和引用4、字符数组1、概述1.基本类型之外,C语言还提供了构造类型的数据,它们有:数组类型、结构体类型、共用体类型。构造类型数据是由基本类型数据按一定规则组成的,因此也可以称之为“导出类型”。2.数组是有序数据的集合。(a)数组中的每一个元素都属于同一个数据类型。(b)用一个统一的数组名和下标,唯一的确定数组中的元素。章节总览一维数组的定义(1)一、定义方式:类型说明符数组名[常量表达式];二、说明:(1)数组名定名规则和变量名相同,遵循标识符定名规则。例如:inta[10];
2、表示数组名为a,此数组有10个元素,每个元素为整型数据.(2)数组名后是用方括弧括起来的常量表达式,不能用圆括弧。下面的用法是错误的:inta(10);(3)常量表达式表示元素的个数,即数组长度。例如:在a[10]中,10表示a数组中有10个元素,下标从0开始,这10个元素是:a[0],a[1],a[2],a[3],a[4],a[5],a[6],a[7],a[8],a[9]注意:不能使用数组元素a[10];(4)常量表达式可以包括常量和符号常量,不能包含变量。C不允许对数组的大小作动态定义,即数组的大小不依赖于程序运行过程中变量的
3、值。例如:下面这样定义数组是不行的:intn;scanf(“%d”,&n);inta[n];一维数组的定义(2)更准确的说法是整型常量表达式例inti=15;intdata[i];(不能用变量定义数组维数)合法标识符表示元素个数下标从0开始a[0]1256a[1]a[2]a[3]a[4]a[5]34a编译时分配连续内存内存字节数=数组维数*sizeof(元素数据类型)数组名表示内存首地址,是地址常量inta[10];数组在内存的存放形式一、规则:(1)数组必须先定义,后使用。一维数组元素的引用(1)(2)数组元素的使用形式为:数
4、组名[下标]下标可以是整型常量或整型表达式,例如:a[0]=a[5]+a[7]-a[2*3];注意:C语言规定只能逐个引用数组元素,不能一次引用整个数组.例7.1数组元素的引用一维数组元素的引用举例main(){inti,a[10];for(i=0;i<=9;i++)a[i]=i;for(i=0;i<=9;i++)printf(“%d,”,a[i]);}程序使a[0]到a[9]的值为0~9,然后按顺序输出如果按逆序输出运行结果:0,1,2,3,4,5,6,7,8,9,for(i=9;i>=0;i--)printf(“%d”,a[i
5、]);运行结果:9,8,7,6,5,4,3,2,1,0,1、在定义数组时对数组元素赋以初值。一维数组的初始化(1)例如:inta[10]={0,1,2,3,4,5,6,7,8,9};初始化之后:a[0]=0,a[1]=1,……a[8]=8,a[9]=9。2、可以只给一部分元素赋值.例如:inta[10]={0,1,2,3,4};只给前五个元素赋值,后五个元素为0。初始化之后:a[0]=0,a[1]=1,a[2]=2,a[3]=3,a[4]=4,a[5]=0,……,a[8]=0,a[9]=0。3、如果想使一个数组中全部元素值为0,可
6、以写成inta[10]={0,0,0,0,0,0,0,0,0,0};不能写成inta[10]={0*10};4、对全部数组元素赋初值时,可以不指定数组长度。一维数组的初始化(2)例如:inta[]={1,2,3,4,5};上面的写法中,{}中只有五个数,系统会据此自动定义数组的长度为5。初始化之后:a[0]=1,a[1]=2,a[2]=3,a[4]=4,a[5]=5。如果被定义的数组长度与提供初值的个数不同,则数组长度不能省略。例如:想定义数组长度为10,就不能省略数组长度的定义。而必须写成inta[10]={1,2,3,4,5}
7、;只初始化前面5个元素,后5个元素为0。不能写成inta[]={1,2,3,4,5};注意:对部分元素赋初值时,长度不能省。一维数组的程序举例(1)例7.2用数组来处理Fibonacci数列问题。(见教材124页)程序如下:/*行号1*/main(){/*行号2*/inti;/*行号3*/intf[20]={1,1};/*行号4*/for(i=2,i<=20;i++)/*行号5*/f[i]=f[i-1]+f[i-2];/*行号6*/for(i=0,i<20;i++)/*行号7*/{/*行号8*/if(i%5==0)printf(“
8、”);/*控制换行,每行输出五个数*//*行号9*/printf(“%12d”,f[i]);/*行号10*/}/*行号11*/}运行结果:11235813213455891442333776109871597258441816765main()