學習C語言,有哪些值得推薦的經典書籍?

2020-08-17 程式設計師書屋

入門經典

C Primer Plus(第6版)中文版

本書詳細講解了C語言的基本概念和編程技巧。

全書共17章。第1章、第2章介紹了C語言編程的預備知識。第3章~第15章詳細講解了C語言的相關知識,包括數據類型、格式化輸入/輸出、運算符、表達式、語句、循環、字符輸入和輸出、函數、數組和指針、字符和字符串函數、內存管理、文件輸入輸出、結構、位操作等。第16章、第17章介紹C預處理器、C庫和高級數據表示。本書以完整的程序為例,講解C語言的知識要點和注意事項。每章末尾設計了大量複習題和編程練習,幫助讀者鞏固所學知識和提高實際編程能力。附錄給出了各章複習題的參考答案和豐富的參考資料。

本書可作為C語言的教材,適用於需要系統學習C語言的初學者,也適用於鞏固C語言知識或希望進一步提高編程技術的程式設計師。

進階經典

C和指針

市面上已經有了許多優秀的講述C語言的書籍,為什麼我們還需要這一本呢?我在大學裡教授C語言編程已有10個年頭,但至今尚未發現一本書是按照我所喜歡的方式來講述指針的。許多書籍用一章的篇幅專門講述指針,而且往往出現在全書的後半部分。但是,僅僅描述指針的語法、並用一些簡單的例子展示其用法是遠遠不夠的。我在授課時,很早便開始講授指針,而且在以後的授課過程中也經常討論指針。我描述它們在各種不同的上下文環境中的有效用法,展示使用指針的編程慣用法(programming idiom)。我還討論了一些相關的課題如編程效率和程序可維護性之間的權衡。指針是本書的線索所在,融會貫通於全書之中。

指針為什麼如此重要?我的信念是:正是指針使C威力無窮。有些任務用其他語言也可以實現,但C能夠更有效地實現;有些任務無法用其他語言實現,如直接訪問硬體,但C卻可以。要想成為一名優秀的C程式設計師,對指針有一個深入而完整的理解是先決條件。

本書並不是一本關於編程的入門圖書。它所面向的讀者應該已經具備了一些編程經驗,或者是一些想學習C,但又不想被諸如為什麼循環很重要以及何時需要使用if語句等膚淺問題耽誤進程的人。

另一方面,我並不要求本書的讀者以前學習過C。我講述了C語言所有方面的內容。這種內容的廣泛覆蓋性使本書不僅適用於學生,也適用於專業人員。也就是說,適用於首次學習C的讀者和那些經驗更豐富的希望進一步提高語言使用技巧的用戶。

優秀的C++書籍把精力集中於與面向對象模型有關的課題上(如類的設計)而不是專注於基本的C技巧,這樣做是對的。但C++是建立在C的基礎之上的,C的基本技巧依然非常重要,特別是那些能夠實現可復用類的技巧。誠然,C++程式設計師在閱讀本書時可以跳過一些他們所熟悉的內容,但他們會在本書中找到許多有用的C工具和技巧。

C專家編程

C代碼。C代碼運行。運行碼運行…請!

——Barbara Ling

所有的C程序都做同一件事,觀察一個字符,然後啥也不幹。

——Peter Weinberge

C語言編程是一項技藝,需要多年曆練才能達到較為完善的境界。一個頭腦敏捷的人很快就能學會C語言中基礎的東西。但要品味出C語言的細微之處,並通過大量編寫各種不同程序成為C語言專家,則耗時甚巨。打個比方說,這是在巴黎點一杯咖啡與在地鐵裡告訴土生土長的巴黎人該在哪裡下車之間的差別。本書是一本關於ANSI C程式語言的高級讀本。它適用於已經編寫過C程序的人,以及那些想迅速獲取一些專家觀點和技巧的人。

編程專家在多年的實踐中建立了自己的技術工具箱,裡面是形形色色的習慣用法、代碼片段和靈活掌握的技巧。他們站在其他更有經驗的同事的肩膀上,或是直接領悟他們的代碼,或是在維護其他人的代碼時聆聽他們的教誨,隨著時間的推移,逐步形成了這些東西。另外一種成為C編程高手的途徑是自省,在認識錯誤的過程中進步。

C陷阱與缺陷

本書力圖通過揭示一般程式設計師,甚至是經驗老道的職業程式設計師,如何在編程中犯錯誤、摔跟頭,以提倡和鼓勵預防性的程序設計。這些錯誤實際上一旦被程式設計師真正認識和理解,並不難避免。因此,本書闡述的重點不是一般原則,而是一個個具體的例子。

如果你是一個程式設計師並且開發中真正用到C語言來解決複雜問題,這本書應該成為你的案頭必備書籍。即使你已經是一個C語言的專家級程式設計師,仍然有必要擁有這本書,很多讀過本書早期手稿的專業C程式設計師常常感嘆:「就在上星期我還遇到這樣一個Bug!」如果你正在教授C語言課程,本書毫無疑問應該成為你向學生推薦的首選補充閱讀材料。

本書不是對C語言的批評。程式設計師無論使用何種程序設計語言,都有可能遇到麻煩。本書濃縮了作者長達10年的C語言開發經驗,集中闡述了C語言中各種問題和「陷阱」,目的是希望程式設計師讀者能夠從中吸取我本人以及我所見過的其他人所犯錯誤的經驗教訓。

本書不是一本「烹飪菜譜」。我們不能希望可以通過詳盡的指導說明來完全避免錯誤。如果可行的話,那麼所有的交通事故都可以通過在路旁刷上「小心駕駛」的標語來杜絕。對一般人而言最有效的學習方式是從感性的、活生生的事例中學習,比如自己的親身經歷或者他人的經驗教訓。而且,哪怕只是明白了一種特定的錯誤是如何可能發生的,就已經在將來避免該錯誤的路上邁了一大步。

相關焦點

  • C語言入門有哪些書籍可以參考?
    C語言作為學編程最好的入門語言,對一個初進程序大門的小白來說是很有幫助的。此外,學習編程能培養一個人的邏輯思維,而C語言則是公認的最符合人們對程序的認知的一款計算機語言,很多大學都選擇了使用C語言作為大學生編程的啟蒙語言。
  • C語言史上不適合新手卻被奉為經典的書籍,C語言有9本這樣的書籍
    書是非常私人的東西,編程類書籍也不例外。我們都是通過閱讀書籍來幫助掌握某種語言的基本知識。隨後又通過閱讀書籍來全面探索這門語言的靈活性。我仔細考察了一些我最喜愛的 C 語言書籍,並從其中選出了對我意義最大的九本。C 語言是一種通用的、面向過程的高級程式語言。也是最具流行度和影響力的程式語言之一。
  • 想要避開C語言的坑,學習C語言的4種方法不容錯過
    如果新手要學習編程,一些前輩都會建議從Python、PHP、Java開始學。不過,有些程式設計師是直接從C語言強勢入門編程的。可以做的項目有哪些呢?3、看經典的C語言編程書籍有不少人學C語言是直接看書,比如看譚浩強寫的《C語言程序設計》。
  • 十本值得反覆閱讀的好書,影響人一生的經典書籍推薦有哪些?
    下面推薦的十本書在字裡行間充滿了智慧,可以幫助你擴寬對世界認知的邊界,而且閱讀起來非常有趣,讓人慾罷不能。這些經典好書,每次都能給你不同感悟,絕對值得一讀再讀。影響人一生的經典書籍推薦有哪些?3.《後物慾時代的來臨》。
  • 程式設計師學習C語言編程的4種方法,C語言之父的大作不容錯過!
    如果新手要學習編程,一些前輩都會建議從Python、PHP、Java開始學。不過,有些程式設計師是直接從C語言強勢入門編程的。那麼,如何學習C語言呢?下面w3cschool提供4種入門C語言的方法:0、刷題絕大多數的程式設計師學編程的時候,還是會開啟簡單粗暴的刷題模式。刷面試對於面試以及技術的提高大有裨益,刷題網站強推Leetcode、Codility、Lintcode等。1、敲一遍代碼紙上得來終覺淺,絕知此事要躬行。
  • 書籍推薦:有哪些類型的書籍值得大學生反覆閱讀,我推薦這幾種!
    有網友問,有哪些書值得大學生去讀?作為一名研究生畢業3年的職場人,看到這個問題後感觸很深。能提出這樣的問題,說明這是一個有學習意識的學生。我記得上學那會,很少有人喜歡去圖書館看會書的。具體地,我推薦你可以先閱讀一些如何高效閱讀的書籍,然後再開始主題閱讀。一、如何閱讀類書籍①《如何閱讀一本書》這本書介紹四種不同層次的閱讀——基礎閱讀、檢視閱讀、分析閱讀、主題閱讀。
  • 一篇文章打破C語言學習誤區
    其實學習C語言並非一定要從事C語言有關的工作,C語言作為最簡單,底層的語言到現在已經有幾十年的時間, 很多程序語言基本上在一定方面跟C語言的語法類似,這種語言稱為類C語言,其中包括大家經常見到的java,c++,c#,php等,學完C語言之後,再學習這些語言都會比較容易上手,可以說
  • 學習嵌入式Linux開發有哪些好的書籍?
    很多的Linux新手,對自己的學習過程十分迷茫,不知道從何學習?學習過程中需要看哪些相關書籍?接下來就為Linux新手們推薦一些關於嵌入式Linux學習的核心書籍:   Linux基礎   1、《Linux與Unix Shell 編程指南》  C語言
  • Java程式設計師經典書籍列表(2020最新修訂版)
    後來讀研進入實驗室,遇到某大牛師兄(目前在阿里美國研究院做Java虛擬機優化工作),給我推薦《Java編程思想》、《重構》等Java開發需要的經典書籍,讀完之後進步很快,發現之前看的教程好多地方講得都是有問題的。
  • 2018年最不值得學習的程式語言排行榜出爐,Perl排名第7,C躺槍!
    近日,2018年最不值得學習的程式語言榜單出爐。在總體排名上,C語言排名第13位,Dart排名第一。對於此榜單,程式設計師網友也紛紛發表各自的一些看法:網友一:這是難得一次Java、C、php沒有同時出現在前20的榜單!
  • C語言入門與基礎——C語言有哪些運算符呢?起到什麼作用?
    需要注意的是,下面的這種寫法在 C語言中是不可取的。小編推薦一個學C語言/C++的學習裙【 七一二,二八四,七零五 】,無論你是大牛還是小白,是想轉行還是想入行都可以來了解一起進步一起學習!裙內有開發工具,很多乾貨和技術資料分享!
  • 初學C語言,還在猶豫如何選擇入門教材嗎?這幾本書籍建議收藏
    那麼對於C編程的新手來說,選擇一本合適的編程入門書籍就很有必要了,這裡結合自身的學習經驗推薦如下:C Primer Plus(第六版)中文版本書採用了友好、易於使用的編排方式,不僅適合打算認真學習C語言編程的學生閱讀,也適合那些精通其他程式語言,但希望更好地掌握C語言這門核心語言的開發人員閱讀。
  • 有什麼好的自學Python書籍推薦?
    1、按照京東Python書銷量進行排行 ,看哪些排在最前面。2、按時最新上架的Python書排行,看看有哪些大牛的Python書上架了。比如異步君點開其中的一本Python書,在推薦中你可以看到如下銷的最好的Python書。
  • 初學C語言,有什麼好書推薦?
    全篇乾貨,我敢保證對你絕對有用。C語言是一種通用的,面向過程的高級程式語言,他以易於理解,簡潔靈活,語法易讀,成為了目前世界上最流行和最具影響力的語言之一。那麼新手在學習c語言的入門階段,該怎麼快速鞏固基礎?
  • 在家想自學Java,有C語言底子,請問哪本書適合?
    一般發出這個疑問都處在初學編程階段,程式語言都是相通的,只要你領悟了一門語言的「任督二脈」,以後你學哪一門語言都會輕易上手。學語言嘛,當你工作一兩年了,你還真會覺得像當初老師說的那樣,語言只是工具罷了。工作期間,可能要你接觸到其它語言,而且要你能快速的ctrl+v,ctrl+c,所以目前偏好哪一門語言,掌握好它罷了。學習語言我感覺需從以下幾個方面做好。
  • 新手如何學習C語言?
    相對於其他程式語言,C語言還是比較難的。初學者需要注意一下幾點:一是學習順序先從熟悉簡單的C語言語法開始入門,然後再循序漸進,學習C++語法,WIN32、MFC、QT、網絡編程,資料庫、數據結構、算法、COM、STL等。構建一個完整的C語言知識體系。
  • 股票書籍排行榜 7本最值得看的股票經典書籍
    今天我們來介紹一下股票書籍排行榜。花上三個小時看完一本股票書籍,頂得上買中一隻好股票。書籍是人類進步的源泉,下面7本最值得看的股票經典書籍,推薦給大家!股票書籍排行榜把這個排在第一位的原因就是,你既然打算參與一個市場的話,那麼第一步要做的是去了解這個市場的歷史。在這個市場發展的歷史中尋找你參與這個市場的邏輯與意義。
  • 推薦一些學習MySQL的資源
    前言:在日常工作與學習中,無論是開發、運維、還是測試,對於資料庫的學習是不可避免的,同時也是日常工作的必備技術之一。在網際網路公司,開源資料庫用得比較多的當屬MySQL了,相信各位小夥伴關注我的原因也是學習MySQL。學習MySQL的途徑有很多,每個人的學習方法也各有不同,但最重要的還是要堅持,找到適合自己的學習方法。
  • 5本Python經典書籍推薦,你都讀過嗎?
    隨著新時代的到來,Python正在不斷發展壯大,特別現在人工智慧的流行,更是掀起了學習Python的熱度。同時許多程式設計師都認為Python,是最適合作為入門的程式語言的。無論如何,毋庸置疑Python是一門非常流行的程式語言,目前它已成為是世界上第三大流行的程式語言,而且還不斷的增加。如果你想學習Python,網絡上有非常多的學習資料。
  • 編程入門有哪些適合新手學習的書籍或視頻?
    有很多非計算機專業的小夥伴問千鋒武漢小編最多的問題,一般就是以下2種:1. 學習編程是否需要有什麼基礎?2. 編程入門有哪些適合新手學習的書籍或視頻?學習編程不需要什麼基礎,但是需要你將入門的基礎打紮實,因為不同的程式語言之間有很多東西都是相通的,把基礎的知識學牢固了,後面學起來就比較輕鬆了。其次,學習編程除了需要打好基礎外,有一個良好的方法和對的思路也是相當重要的。因為在編程世界裡,很多東西並不是死記硬背就能學好的,更多的需要我們能夠有一個融會貫通的思路。