資源描述:
《數(shù)組的定義 - 副本.ppt》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫。
1、第七章數(shù)組2、一維數(shù)組的定義和引用3、二維數(shù)組的定義和引用4、字符數(shù)組1、概述1.基本類型之外,C語言還提供了構(gòu)造類型的數(shù)據(jù),它們有:數(shù)組類型、結(jié)構(gòu)體類型、共用體類型。構(gòu)造類型數(shù)據(jù)是由基本類型數(shù)據(jù)按一定規(guī)則組成的,因此也可以稱之為“導(dǎo)出類型”。2.數(shù)組是有序數(shù)據(jù)的集合。(a)數(shù)組中的每一個(gè)元素都屬于同一個(gè)數(shù)據(jù)類型。(b)用一個(gè)統(tǒng)一的數(shù)組名和下標(biāo),唯一的確定數(shù)組中的元素。章節(jié)總覽一維數(shù)組的定義(1)一、定義方式:類型說明符數(shù)組名[常量表達(dá)式];二、說明:(1)數(shù)組名定名規(guī)則和變量名相同,遵循標(biāo)識(shí)符定名規(guī)則。例如:inta[10];
2、表示數(shù)組名為a,此數(shù)組有10個(gè)元素,每個(gè)元素為整型數(shù)據(jù).(2)數(shù)組名后是用方括弧括起來的常量表達(dá)式,不能用圓括弧。下面的用法是錯(cuò)誤的:inta(10);(3)常量表達(dá)式表示元素的個(gè)數(shù),即數(shù)組長(zhǎng)度。例如:在a[10]中,10表示a數(shù)組中有10個(gè)元素,下標(biāo)從0開始,這10個(gè)元素是:a[0],a[1],a[2],a[3],a[4],a[5],a[6],a[7],a[8],a[9]注意:不能使用數(shù)組元素a[10];(4)常量表達(dá)式可以包括常量和符號(hào)常量,不能包含變量。C不允許對(duì)數(shù)組的大小作動(dòng)態(tài)定義,即數(shù)組的大小不依賴于程序運(yùn)行過程中變量的
3、值。例如:下面這樣定義數(shù)組是不行的:intn;scanf(“%d”,&n);inta[n];一維數(shù)組的定義(2)更準(zhǔn)確的說法是整型常量表達(dá)式例inti=15;intdata[i];(?不能用變量定義數(shù)組維數(shù))合法標(biāo)識(shí)符表示元素個(gè)數(shù)下標(biāo)從0開始a[0]1256a[1]a[2]a[3]a[4]a[5]34a編譯時(shí)分配連續(xù)內(nèi)存內(nèi)存字節(jié)數(shù)=數(shù)組維數(shù)*sizeof(元素?cái)?shù)據(jù)類型)數(shù)組名表示內(nèi)存首地址,是地址常量inta[10];數(shù)組在內(nèi)存的存放形式一、規(guī)則:(1)數(shù)組必須先定義,后使用。一維數(shù)組元素的引用(1)(2)數(shù)組元素的使用形式為:數(shù)
4、組名[下標(biāo)]下標(biāo)可以是整型常量或整型表達(dá)式,例如:a[0]=a[5]+a[7]-a[2*3];注意:C語言規(guī)定只能逐個(gè)引用數(shù)組元素,不能一次引用整個(gè)數(shù)組.例7.1數(shù)組元素的引用一維數(shù)組元素的引用舉例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,然后按順序輸出如果按逆序輸出運(yùn)行結(jié)果:0,1,2,3,4,5,6,7,8,9,for(i=9;i>=0;i--)printf(“%d”,a[i
5、]);運(yùn)行結(jié)果:9,8,7,6,5,4,3,2,1,0,1、在定義數(shù)組時(shí)對(duì)數(shù)組元素賦以初值。一維數(shù)組的初始化(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};只給前五個(gè)元素賦值,后五個(gè)元素為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、如果想使一個(gè)數(shù)組中全部元素值為0,可
6、以寫成inta[10]={0,0,0,0,0,0,0,0,0,0};不能寫成inta[10]={0*10};4、對(duì)全部數(shù)組元素賦初值時(shí),可以不指定數(shù)組長(zhǎng)度。一維數(shù)組的初始化(2)例如:inta[]={1,2,3,4,5};上面的寫法中,{}中只有五個(gè)數(shù),系統(tǒng)會(huì)據(jù)此自動(dòng)定義數(shù)組的長(zhǎng)度為5。初始化之后:a[0]=1,a[1]=2,a[2]=3,a[4]=4,a[5]=5。如果被定義的數(shù)組長(zhǎng)度與提供初值的個(gè)數(shù)不同,則數(shù)組長(zhǎng)度不能省略。例如:想定義數(shù)組長(zhǎng)度為10,就不能省略數(shù)組長(zhǎng)度的定義。而必須寫成inta[10]={1,2,3,4,5}
7、;只初始化前面5個(gè)元素,后5個(gè)元素為0。不能寫成inta[]={1,2,3,4,5};注意:對(duì)部分元素賦初值時(shí),長(zhǎng)度不能省。一維數(shù)組的程序舉例(1)例7.2用數(shù)組來處理Fibonacci數(shù)列問題。(見教材124頁)程序如下:/*行號(hào)1*/main(){/*行號(hào)2*/inti;/*行號(hào)3*/intf[20]={1,1};/*行號(hào)4*/for(i=2,i<=20;i++)/*行號(hào)5*/f[i]=f[i-1]+f[i-2];/*行號(hào)6*/for(i=0,i<20;i++)/*行號(hào)7*/{/*行號(hào)8*/if(i%5==0)printf(“
8、”);/*控制換行,每行輸出五個(gè)數(shù)*//*行號(hào)9*/printf(“%12d”,f[i]);/*行號(hào)10*/}/*行號(hào)11*/}運(yùn)行結(jié)果:11235813213455891442333776109871597258441816765main()