計(jì)算機(jī)二級(jí)考試C語(yǔ)言輔導(dǎo):讓指針不再困擾你

字號(hào):

指針對(duì)一部分初學(xué)者來(lái)說(shuō)一直是一個(gè)無(wú)法逾越的障礙,沒(méi)有指針的C語(yǔ)言就好像沒(méi)有左腿的短跑運(yùn)動(dòng)員。今天我來(lái)試試換一種方法來(lái)理解指針,希望能幫還在為指針掙扎的朋友們理清思路,高手略過(guò)即可。
    我們先認(rèn)為內(nèi)存是一家客棧(看起來(lái)這和老掉牙的大樓的比喻沒(méi)什么區(qū)別,但是請(qǐng)你耐心看下去)。
    同大部分的客棧一樣,這家客棧有天、地、人等各種檔次的房間,用現(xiàn)在的話就是單人間、雙人間、四人間等等。來(lái)住店的客人也是車(chē)水馬龍,三教九流都有,我們看看都有哪些人:
    快樂(lè)單身漢char,還有char的小弟unsigned char,他們只住單人間;
    short int, unsigned short int都是已婚無(wú)孩,他們只住二人間;
    int, unsigned int, long int, unsigned long int,這些都是四口之家,當(dāng)然住四人間了;說(shuō)起來(lái)這里面的前兩位,int和 unsigned char,在dos時(shí)代還是二人世界,住二人間,后來(lái)出了32位系統(tǒng)后,他們才成為四口之家,等到了64位時(shí)代,他們中有人會(huì)變成8口之家。人口變化太快,所以人口問(wèn)題就不討論了,只要知道有幾口人(幾個(gè)字節(jié))就住幾人間就行了。
    另外還有一些更龐大的家庭double,float我們就不一一贅述了。
    住客棧是要登記的,至少老板要知道哪個(gè)房間沒(méi)人住,好租給新來(lái)的客人吧?于是就把每位客人的房間號(hào)都記在了紙上,然后把紙卷在了針上,大大節(jié)省了空間,這就是紙針(指針*)啦,^_^。為了安全,登記完的指針也放在客房里了,不過(guò)是沒(méi)有人住的房間。
    為了區(qū)分不同身份的客人(本客棧不搞歧視,區(qū)分身份只是為了便于管理),客棧用顏色不同的紙來(lái)記錄房間號(hào),這就有了不同類型的指針,比如藍(lán)色的char*這種指針只記錄單人間的房間號(hào),紅色的int*只記錄四人間的??雌饋?lái)分這么多種類很混亂,但是如果有很多同類型的組團(tuán)(數(shù)組)來(lái)住店時(shí)就方便了,上次int a[100]來(lái)旅游的時(shí)候,就找到那一沓100張紅色的指針就可以知道誰(shuí)住哪里了。比如團(tuán)長(zhǎng)a[0]的房間號(hào)記在第一張紙p上,那么翻開(kāi)下一頁(yè)(p++)你就找到了隔壁的房間號(hào),你拿前四張去找人正好可以湊一桌麻將了。