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

字號:

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