C語言:數(shu)組定義方式
時間:2019-02-13 來源:華清遠見
一、數組簡介
<1>前言(yan)
大家首(shou)先來(lai)思(si)考(kao)一個(ge)問題,若是(shi)我們想(xiang)要定義兩個(ge)變(bian)量,求這兩個(ge)數的平均數,該(gai)怎么(me)求呢?
例如:int a = 10,b = 20
int average = (a + b) / 2;
上面的公式,我相信大家(jia)應(ying)該(gai)很快就(jiu)能(neng)夠求出來。
若(ruo)是,我們想要定義5個(ge)變量,求(qiu)他們的平均值呢?
我(wo)們是不是要這么寫?
Int a = 1,b = 2,c = 3,d = 5,e = 5;
我(wo)相(xiang)信這樣寫,大(da)家應該也能求出來。不(bu)過,大(da)家這個(ge)時(shi)候,應該會感覺到比較麻煩了(le),我(wo)們(men)定義了(le)太多的(de)變量(liang)了(le)。若是我(wo)們(men)要求100個(ge)變量(liang)的(de)平均數(shu)的(de)話,那么豈(qi)不(bu)是我(wo)們(men)要定義100個(ge)變量(liang)。這樣,我(wo)想要是沒(mei)有耐(nai)心的(de)同學,肯(ken)定早就(jiu)不(bu)干了(le)吧!因此,我(wo)們(men)聰(cong)明的(de)程序員提出來一個(ge)叫做數(shu)組的(de)概念(nian)。
<2>數組的概(gai)念
數組(zu):我(wo)們把相同數據類(lei)型變量的集合稱為(wei)數組(zu)。
<3>定義方式
數據類型(xing) 變量名[數組元素的個(ge)數]
例如:int a[5];//我們定義了5個int類型的元素。
<4>內存中的排(pai)序
int a[5];

由上圖,我們可以看出:
<1>數組中(zhong)共有5個元(yuan)素,a[0],[1],a[2],a[3],a[4]
<2>數組的(de)第(di)一個下(xia)標(biao)(biao)為0,最(zui)后一個下(xia)標(biao)(biao)為數組元素個數-1
<3>數組(zu)(zu)(zu)中(zhong)每個成(cheng)員(yuan)的(de)大小:數組(zu)(zu)(zu)組(zu)(zu)(zu)中(zhong)每個成(cheng)員(yuan)的(de)大小,取決于(yu)數組(zu)(zu)(zu)元素的(de)數據類(lei)型(xing),此時數組(zu)(zu)(zu)成(cheng)員(yuan)的(de)大小:4byte(一個int類(lei)型(xing)大小)
<4>整個數組(zu)的(de)大(da)小=一個數組(zu)成員(yuan)的(de)大(da)小*數組(zu)元素的(de)個數
即:4 * 5 = 20;
或者 sizeof(數組(zu)名(ming)),可得數組(zu)的大小
注意:數(shu)組的數(shu)組名標示數(shu)組首元(yuan)素的首地(di)址。
以int a[5]為(wei)例(li), 數(shu)組首元素為(wei)a[0],則它的地址為(wei)&a[0],故a 其實(shi)標示了(le)&a[0].
思(si)考:我們怎么理(li)解a[0],a[1],a[2],a[3]?
a<===>&a[0]
a[0] =====>表示數組名a沒有偏移,然后去對(dui)應(ying)地(di)址中(zhong)的數據(ju)。
a[1]======>表示(shi)a偏移(yi)了一個地址 1 個數組元素(su)數據類型的大小,然(ran)后取(qu)該(gai)地址中(zhong)的數據
a[2]======>表(biao)示a偏移了一個地(di)址 2個數組元素數據(ju)類(lei)型的(de)大小(xiao),然后取該地(di)址中的(de)數據(ju)
實例代碼:

運行結果:


