前言 数组与指针的艺术
?此文是筆者2005年所作《再再論指針》的修訂版,與前文相比,本文主要的不同點有如下幾點:
?
一、引用C/C++標準的條款去闡述原理。C與C++標準共有四個已發行的正式版本,分別是C89/C90、C99、C++98和C++2003,為了避免重復的條款引用,在文字或語義相同的情況下,筆者只引用C99的條款,遇到不同的情況時再分別引用。
二、加入了C++的內容。
三、增加或者合并了一些章節,同時修正了一些行文錯誤。
?
? 指針是C/C++的靈魂!它是C/C++眾多引人入勝的特性中的一朵奇葩。與底層操作的親密接觸是指針與生俱來的優點,利用指針可以寫出許多短小精悍、效率極高的代碼。它是C/C++一把無可替代的利器,憑著這把利器,C/C++與其它高級語言相比至少在效率方面勝人一籌。
?
但是,由于數組與指針的原理與使用方式跟人們通常的思維習慣有較大差別,需要花較多的時間進行消化,這使得對數組與指針的偏見和誤解成為了普遍存在的現象,更出現了避免使用指針的思潮,筆者認為這是非常不可取的。指針是如此犀利,正是它才使得C/C++語言威猛無比。如果就這樣把它放棄了,那么C/C++就算是白學了。我們應當讓指針成為你手中那把砍掉索倫手指上魔戒的舉世無雙的納西爾圣劍,而不是你心中永遠的魔戒。
?
與眾多初學者一樣,筆者對數組與指針的理解也經歷了漫長的過程。初學C的時候,筆者作為譚書的受害者之一,與其它初學者一樣腦袋中充滿了對數組與指針各種各樣的誤解。后來隨著對C/C++理解的深入,逐漸發現譚書中存在大量的謬誤與漏洞,從此開始了糾偏的歷程。這是一段痛并快樂著的過程,痛是由于憤恨被謀殺了一段寶貴的時光,快樂是因為重新找到了方向,相信不少朋友也曾有過跟筆者相似的體會。在這段時間里,筆者查閱了大量的資料,也耗費了大量的時間進行深刻的思考,還跟同事、朋友、網友進行了大量的辯論,特別是2005年,幾乎整整一年的時間都是在激烈的辯論中渡過的,當年這些辯論的激烈程度到現在還記憶猶新,如果當時手里有把槍的話,我想我會開槍的!經過不斷的思考、辯論、印證,再思考、再辯論、再印證,數組與指針的迷霧終于逐漸清晰了起來。
?
? 本文的目的,是希望通過跟各位朋友一起討論關于數組與指針的幾個關鍵概念及常見問題,加深對數組與指針的理解。筆者不敢奢望能夠完全解開你心中的魔結,但如果通過閱讀本文,能夠讓你在日后的數組與指針使用過程中減少失誤,筆者就心滿意足了。
?
當你閱讀本文后:
?
? 如果你有不同的意見,歡迎你在評論里留下自己的見解,筆者很樂意跟你一起討論,共同進步。
?
? 如果你覺得我說的全都是廢話,那么恭喜你,你的指針已經畢業了。
?
? 如果你有太多不明白的地方,那么我介紹你先找一些關于數組與指針的讀物看看,筆者推薦你閱讀一本叫《C與指針》的書,看完后再回來繼續思考你的問題。
發表于 @ 2009年11月23日 11:05:00 | 評論( 1 ) | 編輯| 舉報
本文來自CSDN博客,轉載請標明出處:http://blog.csdn.net/supermegaboy/archive/2009/11/23/4855036.aspx
總結
以上是生活随笔為你收集整理的前言 数组与指针的艺术的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 数组与指针的艺术--深入探索c/c++数
- 下一篇: 第一章:数组与指针概念剖析