轉---讓指標不再困擾你
同大部分的客棧一樣,這家客棧有天、地、人等各種檔次的房間,用現在的話就是單人間、雙人間、四人間等等。來住店的客人也是車水馬龍,三教九流都有,我們看看都有哪些人:
快樂單身漢char,還有char的小弟unsigned char,他們只住單人間;
short int, unsigned short int都是已婚無孩,他們只住二人間;
int, unsigned int, long int, unsigned long int,這些都是四口之家,當然住四人間了;說起來這裡面的前兩位,int和 unsigned char,在dos時代還是二人世界,住二人間,後來出了32位系統後,他們才成為四口之家,等到了64位時代,他們中有人會變成8口之家。人口變化太快,所以人口問題就不討論了,只要知道有幾口人(幾個位元組)就住幾人間就行了。
另外還有一些更龐大的家庭double,float我們就不一一贅述了。
住客棧是要登記的,至少老闆要知道哪個房間沒人住,好租給新來的客人吧?於是就把每位客人的房間號都記在了紙上,然後把紙卷在了針上,大大節省了空間,這就是紙針(指標*)啦,^_^。為了安全,登記完的指標也放在客房裡了,不過是沒有人住的房間。
為了區分不同身份的客人(本客棧不搞歧視,區分身份只是為了便於管理),客棧用顏色不同的紙來記錄房間號,這就有了不同型別的指標,比如藍色的char*這種指標只記錄單人間的房間號,紅色的int*只記錄四人間的。看起來分這麼多種類很混亂,但是如果有很多同型別的組團(陣列)來住店時就方便了,上次int a[100]來旅遊的時候,就找到那一沓100張紅色的指標就可以知道誰住哪裡了。比如團長a[0]的房間號記在第一張紙p上,那麼翻開下一頁(p++)你就找到了隔壁的房間號,你拿前四張去找人正好可以湊一桌麻將了。
雖然指標分為很多顏色(型別),但是不管多大的家族都只住一間屋子,只有一個房間號,所以無論什麼顏色的指標都具有相同的大小,長度就是房間號那麼長。
並非所有人都像int a[100]那麼幸運,他們來的時候正好一層100個房間都沒人住,於是他們可以住在同一片連續的區域。上次m, n, p, q, r一起來想住連續的幾個屋子,方便一起去玩,偏偏找不到合適的房間,只好m住3樓,n住5樓,…,總之都很遠。可是m老是來問老闆他的朋友們住哪裡?老闆每次要找半天,後來想了個辦法,把記錄這幾個人的指標用一個盒子*p[5](指標陣列)放在一起,這樣就方便多了。
有的客人脾氣很怪,比如char F[4],他們四個是一個樂隊的,可是又不願住四人間,非要一人住一間,還一定是連著的,如果不連著就不住,老闆沒辦法,給他們找了連著的四間房。可是大牌還真是難纏,他們早上出去工作就退房,晚上又要回來住,老闆又要給他們找連續的四間房,天天如此,而且每次都浪費四個指標,客棧的成本一下提高了。老闆又想了個辦法,他專門為這些人訂做了另一種顏色的指標(*p)[4](指向陣列的指標),他用這個指標記錄他們老大F[0]的房間號,剩下的三位房間號就是緊挨著的三間,減少了不少浪費。
一直忘了介紹客棧的兩個夥計,一個叫“小&”,另一個叫”小*”,看外形就知道,”小*”比較圓滑,肯定是經常可客人,而“小&”肚子比較大,一看就是常年打算盤,記帳不活動造成的。有時候有人來客棧找住店的人,首先要查詢客人的房間,“小&”就是負責去取儲存房間號的指標的,比如上面提到的m想找r去逛街,“小&”就去找r的指標了(&r), “小&”找了半天,終於找到了r的指標p(p = &r),他把p交給”小*”, ”小*”就拿著p去叫客人了(*p就是r了)。看起來好像”小*”的工作比“小&”輕鬆,其實”小*”也不容易,他要區分指標的顏色(型別)來決定叫多少個人,比如拿的是藍色的指標(上面說得是char型),就只叫一個客人就可以,如果是紅色的(int)就得叫4位客人,如果少叫了一位樓下找人得客人會生氣得,因為沒有把要找的人找全。
好了,這家客棧介紹完了,為了感謝你看到這裡,現在客棧經營權就交給你了,希望你財源廣進!
原帖及討論:
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/7416120/viewspace-1020674/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Java最困擾你的那些事Java
- Stopsleep防瞌睡指環:讓你開車時犯不了困
- 網路術語還在困擾你嗎?
- C語言重點——指標篇(一文讓你完全搞懂指標)| 從記憶體理解指標 | 指標完全解析C語言指標記憶體
- 詳解企業網盤功能,讓選擇不再困難
- 資料切片,掩碼索引,這個陷阱困擾過你嗎?索引
- JNPF讓軟體系統的增、刪、改、查不再困難
- 給日誌打標籤,讓你的日誌定位再無困難
- 發行版太多 困擾Dell進軍桌面Linux(轉)Linux
- 困擾javascript初學者的閉包JavaScript
- 資料庫設計的困擾資料庫
- 指標 (轉)指標
- ChatMoney讓你不再戀愛腦!
- 顯示你個性的滑鼠指標(轉)指標
- GodBlessYou: 讓你的應用不再崩潰Go
- 智慧考勤管理工具,讓HR擺脫考勤統計麻煩的困擾
- 指標+AI:邁向智慧化,讓指標應用更高效指標AI
- Redux 的困擾與如何技術選型Redux
- C\C++語言重點——指標篇 | 為什麼指標被譽為 C 語言靈魂?(一文讓你完全搞懂指標)C++指標
- 小程式雲開發讓你不再加班
- CR指標(轉載)指標
- 淺談指標 (轉)指標
- 指標問題的一點體會(區別 [指向指標的指標] 與 [指標的指標] .) (轉)指標
- Android一種常見的佈局困擾Android
- 私有化部署chatGPT,告別網路困擾ChatGPT
- 關於包管理工具有些困擾
- 使用copy命令解決LONG型別的困擾型別
- 讓你的應用程式不再對資料庫的改動“感冒”(三) (轉)資料庫
- 讓你的應用程式不再對資料庫的改動“感冒”(一) (轉)資料庫
- 讓你的應用程式不再對資料庫的改動“感冒”(二) (轉)資料庫
- C#爬蟲,讓你不再覺得神祕C#爬蟲
- C++指標轉換C++指標
- 人氣指標(轉載)指標
- 隨機指標(轉載)隨機指標
- 我眼中的指標 (轉)指標
- 改變滑鼠指標 (轉)指標
- SMART POINTER(智慧指標) (轉)指標
- 複合指標、派生指標是什麼,你搞清楚了嘛?指標