
c和指針
為什麼需要這本書
市面上已經有了許多優秀的講述c語言的書籍,為什麼我們還需要這一本呢?我在大學裡教授c語言程式設計已有10個年頭,但至今尚未發現一本書是按照我所喜歡的方式來講述指針的。許多書籍用一章的篇幅專門講述指針,而且往往出現在全書的後半部分。但是,僅僅描述指針的文法、并用一些簡單的例子展示其用法是遠遠不夠的。我在授課時,很早便開始講授指針,而且在以後的授課過程中也經常讨論指針。我描述它們在各種不同的上下文環境中的有效用法,展示使用指針的程式設計慣用法(programming idiom)。我還讨論了一些相關的課題如程式設計效率和程式可維護性之間的權衡。指針是本書的線索所在,融會貫通于全書之中。
指針為什麼如此重要?我的信念是:正是指針使c威力無窮。有些任務用其他語言也可以實作,但c能夠更有效地實作;有些任務無法用其他語言實作,如直接通路硬體,但c卻可以。要想成為一名優秀的c程式員,對指針有一個深入而完整的了解是先決條件。
然而,指針雖然很強大,與之相伴的風險卻也不小。跟指甲锉相比,鍊鋸可以更快地切割木材,但鍊鋸更容易使你受傷,而且傷害常常來得極快,後果也非常嚴重。指針就像鍊鋸一樣,如果使用得當,它們可以簡化算法的實作,并使其更富效率;如果使用不當,它們就會引起錯誤,導緻細微而令人困惑的症狀,并且極難發現原因。對指針隻是略知一二便放手使用是件非常危險的事。如果那樣的話,它給你帶來的總是痛苦而不是歡樂。本書提供了你所需要的深入而完整的關于指針的知識,足以使你避開指針可能帶來的痛苦。
<a href="https://yq.aliyun.com/articles/92811">第1章 快速上手</a>
<a href="https://yq.aliyun.com/articles/92811">1.1 簡介</a>
<a href="https://yq.aliyun.com/articles/92749">1.2 補充說明</a>
<a href="https://yq.aliyun.com/articles/92759">1.3 編譯</a>
<a href="https://yq.aliyun.com/articles/92761">1.4 總結</a>
<a href="https://yq.aliyun.com/articles/92764">1.5 警告的總結</a>
<a href="https://yq.aliyun.com/articles/92767">1.6 程式設計提示的總結</a>
<a href="https://yq.aliyun.com/articles/92771">1.7 問題</a>
<a href="https://yq.aliyun.com/articles/92774">1.8 程式設計練習</a>
第2章 基本概念
第3章 資料
第4章 語句
第5章 操作符和表達式
第6章 指針
第7章 函數
第8章 數組
第9章 字元串、字元和位元組
第10章 結構和聯合
第11章 動态記憶體配置設定
第12章 使用結構和指針
第13章 進階指針話題
第14章 預處理器
第15章 輸入/輸出函數
第16章 标準函數庫
第17章 經典抽象資料類型
第18章 運作時環境
附錄 部分問題答案
索引
參考文獻