通過對前面知識的學(xué)習(xí),我們已經(jīng)知道如何定義和使用各種變量,但總有不夠用的時(shí)候。舉個(gè)例子,我要記錄一個(gè)班32個(gè)同學(xué)C語言這科的成績,難道要定義32個(gè)變量?嗯,這個(gè)當(dāng)然可以,但是似乎好像覺得怪怪的~可以再聯(lián)想一番,如果幾百個(gè)人或者更多呢?
丹尼斯·里奇(C語言的發(fā)明者,Unix之父,必須要牢記這位大師)早就為我們準(zhǔn)備了數(shù)組這種類型。數(shù)組是同類型有序數(shù)據(jù)的集合,可以為這些數(shù)據(jù)的集合起一個(gè)名字,稱為數(shù)組名。該集合中的各個(gè)數(shù)據(jù)項(xiàng)稱為數(shù)組元素,每個(gè)元素可用數(shù)組名和下標(biāo)表示。
在C程序設(shè)計(jì)中,數(shù)組是一個(gè)十分有用的數(shù)據(jù)類型,下面將對數(shù)組進(jìn)行詳細(xì)介紹。
一維數(shù)組(姑且先叫一維數(shù)組)的定義和使用:
在C語言中使用數(shù)組必須先進(jìn)行定義,一維數(shù)組的定義方式如下:
類型說明符 數(shù)組名 [常量表達(dá)式];
其中類型說明符是任意一種基本數(shù)據(jù)類型或構(gòu)造數(shù)據(jù)類型,它定義了全體數(shù)組成員的數(shù)據(jù)類型,可以發(fā)現(xiàn)要比我們定義N個(gè)元素要方便的多了,如果把一個(gè)元素看作一個(gè)點(diǎn),那么一維數(shù)組就像一條線。
名是用戶定義的數(shù)組標(biāo)識符,方括號中的常量表達(dá)式表示數(shù)據(jù)元素的個(gè)數(shù),也稱為數(shù)組的長度。需要注意的是,數(shù)組中的元素下標(biāo)是從0開始計(jì)算的,例如:
int a[100]; //定義一個(gè)數(shù)組名為a,存儲100個(gè)int類型的數(shù)組,其元素分別是a[0]~a[99] float b[10]; //數(shù)組名為b的,存儲10個(gè)float類型的數(shù)組,其元素分別是b[0]~b[9] char c[256]; //定義一個(gè)數(shù)組名為c的字符型數(shù)組,長度為256,其元素分別是c[0]~c[255]
當(dāng)在函數(shù)中只定義數(shù)組時(shí),數(shù)組里的值和函數(shù)里定義一個(gè)變量的值一樣,都是未初始化過的,我們也可以定義的時(shí)候并初始化賦值,并且,當(dāng)給部分元素賦初值的時(shí)候,未被賦值的元素將自動(dòng)賦值為0,更細(xì)一些,int類型未被賦值的元素為0,浮點(diǎn)型為小數(shù)類型,而字符類型則為'\0',例如:
int a[100]={1,2,3,4,5}; //定義一個(gè)整型數(shù)組a,前5個(gè)元素即賦值為1,2,3,4,5,后95個(gè)元素值值全部為0 float b[10]={1.1,2.2,3.3,4.4,5.5,6.6,7.7,8.8,9.9,0.0}; //定義float數(shù)組b并對全部float類型的元素都分別賦值 char c[256]={'C','l','a','n','g','u','a','g','e'}; //定義一個(gè)數(shù)組名為c的字符型數(shù)組,并對前9個(gè)元素進(jìn)行賦值,其余元素全部為'\0'
請您親自上機(jī)實(shí)驗(yàn)。
C語言網(wǎng)提供由在職研發(fā)工程師或ACM藍(lán)橋杯競賽優(yōu)秀選手錄制的視頻教程,并配有習(xí)題和答疑,點(diǎn)擊了解:
一點(diǎn)編程也不會寫的:零基礎(chǔ)C語言學(xué)練課程
解決困擾你多年的C語言疑難雜癥特性的C語言進(jìn)階課程
從零到寫出一個(gè)爬蟲的Python編程課程
只會語法寫不出代碼?手把手帶你寫100個(gè)編程真題的編程百練課程
信息學(xué)奧賽或C++選手的 必學(xué)C++課程
藍(lán)橋杯ACM、信息學(xué)奧賽的必學(xué)課程:算法競賽課入門課程
手把手講解近五年真題的藍(lán)橋杯輔導(dǎo)課程