在前面的文章裡我提到,要學習某項技術其中相關學習材料的選擇非常重要。如果選擇錯誤的材料則損失的不僅僅是錢財。這裡,我就針對一些比較好的學習材料做乙個收集和整理。希望能夠給學習相關技術的人提供一點幫助。這篇文章主要針對c語言學習的相關材料。
這本書的作者是大名鼎鼎的c語言之父dennis ritchie和brian kernighan的作品,絕對的權威。只是出書的年代比較早,是2023年的。當年c語言還沒有乙個完整的國際標準。所以書中的**寫法和獨特的風格被人們稱為k&r c。c語言真是乙個精巧的語言,在這本書裡通過區區幾十面的內容就把其中的核心內容給涵蓋了。這本書作為入門學習來說很快,但是後面的習題還是有相當的難度的。由於年代的原因,新標準的內容在這裡沒有得到介紹。不管是初學者還是有經驗的人,都值得細細品讀。
這本書涵蓋的內容相對要新一些,裡面包含了對新的c99標準內容的討論。相對來說這本書要厚一點,裡面的內容講的比較詳細。後面也有很豐富的習題。大部分難度都不大,作為初學者來說,可以起到很好的鍛鍊效果。書中每乙個小節中都有一系列的問答部分,這裡對於一些細節的問題討論很細緻,列出了很多容易忽略或者容易出錯的問題。
也是講的非常細緻而且淺顯易懂的書,作為專門的學習書籍效果不錯。書比較厚,有900多面。裡面涵蓋的內容非常全面也非常細緻,都按部就班的來講,不怕你看不懂。
這些材料對語言的基本要素介紹,語法、語義、典型用法和結構等都做了乙個詳盡的介紹。有了這麼多好的學習材料,入門學習基本上不用考慮其他的了。
貝爾實驗室的牛人作品,列舉了c語言程式設計的一些常見的問題。入門之後再來看其中的內容其實都比較輕鬆。看這書的時候可以不必正襟危坐,完全可以在乙個休閒的時間,翻開看看。裡面乙個個生動的小問題,在不經意間就讓人心領神會。有點像是乙份飯後的甜點,美味可口。
想起當年在學校乙個人住的時候,乙個人坐在笨重的台式電腦旁邊,一邊翻讀著這本書一邊細細的品味裡面的細節。這本書可以說是專家級的。對一些問題和細節的分析非常深入。好書如酒,醇香四溢。
c語言裡面最精彩的地方莫過於指標,這本書對這個最重要而且最麻煩的地方做了深入全面的介紹。當年和乙個朋友討論的時候,他還專門買了這本書和我講他學習的體會。
一般來說,當自己剛學完前面的入門篇材料時會有點手癢癢的,總想寫出個什麼大點的東西來。可是原來的書上講的問題和示例都是規模比較小。而且在實際的工程中該怎麼寫**,該怎麼組織標頭檔案,怎麼編譯和鏈結**,這些東西都值得深究。如果想寫出真正實用的**,就好好看看這本書吧。強烈推薦。
還有兩本書也比較有意思,這裡就不再詳細的討論。乙個是c programming faqs: frequently asked questions,書上列出了關於c常見的一些問題。配套的**上還有相關問題的更新。另外乙個是the c puzzle book。每年國際上會舉行乙個c語言混亂**大賽。看誰把**寫得混亂的同時還能實現很牛的功能。如果誰想看看這些比較歡樂的東西,可以參考一下這個。
c語言本身的功能比較精簡,如果要實現很多複雜的功能,對一些標準庫的使用肯定就必不可少。這是關於c語言標準庫和各種語法的參考書。寫**的時候要查詢哪些庫,要用哪些特性,這裡都有詳細的介紹。
我們在學習某種語言的時候,除了要學會基本語言用法,也要學會怎麼靈活運用它。這本書是講c語言的標準庫是怎麼設計和實現的。要學好語言就要學習優秀的**。這裡關於c標準庫的**就是乙個優秀的學習參考。
我們實際上用c語言做開發會受到乙個平台的影響。典型的針對windows平台和unix平台,他們都有各自平台特定的api。針對這兩個平台也都有一些優秀的書籍值得深入學習。
當年在一家公司實習,乙個哥們抱著這本厚厚的書每天都在認真的啃。windows底層的hook,訊息迴圈機制這些東西在這裡都有詳細的介紹。這些是在windows平台用c語言開發需要理解的基礎。
大牛jeffery richter的作品。可惜當年培訓課程聽課的人太多,一直沒搶註上他講的c#系列課程。在windows平台玩c/c++,這本書是深入講解的經典。
unix平台的經典書籍更是豐富。最數得上的應該是richard stevens的系列作品了。
advanced programming in the unix environment (3rd edition)
unix network programming, volume 1: the sockets networking api (3rd edition)
unix network programming, volume 2: interprocess communications, second edition
關於他的這一系列書,可以說是unix上面程式設計的必備。原來作者打算出個unix網路程式設計的3卷集的。可惜沒出完就英年早逝了。天妒英才啊!後面這幾本書是一些專家在他原來的基礎上修訂和增補的新版本。
近幾年難得一見的好書。比較厚有1500多面。把它研究透了你刷怪的威力該有多恐怖,只能說誰用誰知道啊。
在這方面,還有幾本很優秀的書。比如說advanced unix programming (2nd edition),unix systems programming: communication, concurrency and threads還有understanding unix/linux programming: a guide to theory and practice。
有人說c語言就像是一把快刀,它很小巧很快。用的好,它會像小李飛刀一樣的犀利,如果不小心也會割傷你的手。這是自己當年學習c語言的時候看過的或者參考過的一些材料。還有很多好的書由於所知有限就沒有一一列出來了。目前這些書基本上在國內都有翻譯版或者影印版的。不一定要每一本書都看,根據自己的需要去適當的選擇吧。好東西都在這兒了,總不至於要我來喂你吧?我可沒那麼好心:)
讀書心得 C語言書籍
c領域中,講c bug的書籍,c專家程式設計 這本書很出名,它從語言角度講述了c 中的問題,而 c缺陷和陷阱 從應用的角度來講解c語言中遇到的問題。感覺 c專家程式設計 比較專家,更加的分析c語言標準,真的很深。c缺陷和陷阱 比較偏向應用,所以建議先讀 c缺陷和陷阱 再讀c專家程式設計 c專家編 的...
495個C語言問題 討論1
問題1 ascii碼對照表 可分為控制字元和可顯示字元 討論 495個c語言問題 中第乙個問題,涉及到具體二進位制編碼,講到char 與 unsigned char的區別和取值範圍 也講到使用c語言查詢中所有資料型別最大值和最小值的規定 c語言運算子優先順序列表 超詳細 關於自增和自減,當和自增和自...
C語言中結構體賦值問題的討論
今天幫師姐調乙個程式的bug,師姐的程式中有個結構體直接賦值的語句,在我印象中結構體好像是不能直接賦值的,正如陣列不能直接賦值那樣,我懷疑這個地方有問題,但最後證明並不是這個問題。那麼就總結一下c語言中結構體賦值的問題吧 下面是乙個例項 include struct foofoo1 foo2 def...