C語言史上不適合新手卻被奉為經典的書籍,C語言有9本這樣的書籍

2020-12-16 C語言基礎

書是非常私人的東西,編程類書籍也不例外。我們都是通過閱讀書籍來幫助掌握某種語言的基本知識。隨後又通過閱讀書籍來全面探索這門語言的靈活性。我仔細考察了一些我最喜愛的 C 語言書籍,並從其中選出了對我意義最大的九本。

C 語言是一種通用的、面向過程的高級程式語言。也是最具流行度和影響力的程式語言之一。該語言在設計時就被設計為可以通過編譯器進行編譯,以此來對內存進行底層操作、高效地執行機器指令以及在運行時僅需要最小的支持。很多很多程式語言都得益於 C 語言, C 語言就像是編程界的通用語言一樣。

C 語言非常易懂。它允許程式設計師能夠以一種清晰、簡單、符合邏輯的方式來組織程序。這是一種非常靈活、實用並且簡潔的語言,同時它還具有非常容易讀懂的語法。使用 C 語言編寫的代碼運行非常快。可以非常簡單地操作計算機的底層設施。通過編譯器的指令可以允許我們為不同體系結構的設備生成同一個版本的程序。

C 語言是自由的。因此學習 C 語言的書籍也是體現了其自由性。快來看看我挑選的開源書籍,有沒有哪一本能夠吸引你?好好享受它吧!

《 C 語言》( The C Book)

相關C/C++學習資料私信我 「代碼」即可獲取

作者: Mike Banahan, Declan Brady 和 Mark Doran ,350 頁

這本書是為那些已經具備使用現代高級面向過程程式語言的程式設計師設計的。這本書專注於那些 C 語言的特有之處。尤其是使用 C 語言的方式是這本書所重點關注的。

包含以下章節:

變量及運算法則介紹 – 介紹了 C 語言的基礎知識, 包括關鍵字和標識符,變量聲明,實數類型,整型,表達式和運算法則以及常量控制流及邏輯表達式 – 這一章介紹了在 C 語言中可以用於控制程序流程的幾種方法,包括一些尚未介紹的語句。 控制流,邏輯表達式以及奇怪的運算符。函數 – 函數的類型, 遞歸,傳參數以及連結數組和指針 – 數組, 指針, 字符處理, sizeof 以及儲存空間分配, 函數指針,包含指針的表達式,數組,&運算符以及函數聲明結構體數據類型 – 結構體, 聯合體, 位欄位, 枚舉類型, 限定符、派生類型以及初始化預處理器 – 預處理器是如何工作的及其相關指令C 語言中的一些特定內容 – 聲明, 定義,typedef, const 和 volatile以及序列點庫 – 診斷, 字符處理, 本地化, 與具體實現相關的限制, 數學函數, 非局部跳轉, 信號處理, 可變參數, 輸入輸出, 格式化 I/O, 字符 I/O, 無格式 I/O, 隨機訪問函數, 通用函數, 字符串處理, 日期和時間C 語言編寫的完整程序 – 綜合以上內容, main函數的參數, 解析程序參數, 模式匹配程序以及一個難度更大的程序作者允許讀者利用此書做任何他們想做的事情,只需說明作者和版權。經Mike Banahan確認,本書通過知識共享協議發布。

風格的要素—— C 語言版(C Elements of Style)

相關C/C++學習資料私信我 「代碼」即可獲取

作者 Steve Oualline ,265頁

這是一本十分有用的編程風格指南,指導 C 和 C++程式設計師如何去編寫可讀性良好的,易懂的,易於維護的程序。不論你是一個學生還是專業程式設計師,你都能從這本書中提供的技巧和技術中獲益,構建優雅可靠的代碼。

這本書意在向讀者們展示如何在你的程序中融入風格良好的代碼。機器僅處理代碼,而人類關注於注釋。良好的編程風格與這兩部分都有關。

我們的最終目標是構建設計良好,編寫良好的代碼,這種代碼對於計算機來說是高效的,同時包含了精心編寫的注釋用於幫助人類理解程序。這樣一來,調試,維護和增強程序,都變得更加容易了。最終還提升了代碼的可讀性,簡潔性,可靠性和可維護性。

在本書中,你可以找到有關編寫注釋,程序頭,變量命名,語句格式化,語句細節,編寫預處理器命令,組織目錄和創建makefile的指南。

本書通過知識共享協議發布。

《編寫你自己的Lisp語言》(Build Your Own Lisp)

相關C/C++學習資料私信我 「代碼」即可獲取

作者 Daniel Holden ,212頁

在學習 C 語言的同時學習如何創造你自己的程式語言——一個最簡的Lisp語言(僅用不到1000行代碼)。

這本書是為兩種人寫的,一種是想要學習 C 語言的人,另一種是想要知道如何創建一門語言的人。本書並不適合作為第一本入門書籍,因為你需要一些編程經驗才能讀懂它的內容。

本書基於 Creative Commons Attribution-NonCommercial-ShareAlike 3.0.協議發布

紙質版可以在Amazon上購買。

《 GNU C 語言參考手冊》(The GNU C Reference Manual)

相關C/C++學習資料私信我 「代碼」即可獲取

作者 Trevis Rothwell, James Youngman ,91頁

本書是一本 C 語言參考手冊,意在寫明C89,C99標準以及當前GNU對標準 C 語言的擴展情況。本書並不適合新手閱讀。

包含以下章節:

詞法元素——這部分內容描述了預編譯之後,組成 C 語言代碼的詞法元素。包括5種:關鍵字,標識符,常量,操作符和分隔符數據類型——研究基礎的數據類型,枚舉,聯合體,結構體,數組,指針,不完全類型,類型修飾詞,儲存類型修飾詞以及重命名類型表達式和操作符 —— 還介紹了自增/自減,算數操作符,復共軛性,比較操作符,邏輯運算符,位移,位運算符,指針運算符,sizeof,類型轉換等等。語句 —— 標籤,表達式,if 語句,switch 語句,while 語句,do 語句,for 語句,代碼塊,null 語句,goto 語句,break 語句,continue 語句,return 語句以及 typedef 語句函數 —— 學習函數聲明,函數定義,函數調用,參數,變長參數列表,通過指針調用函數,main 函數,遞歸函數等等。程序結構和定義域 —— 從宏觀上來看程序一個例程 —— 一個用 C 語言編寫的完整程序,包含 C 語言源文件和頭文件。這個程序是一個典型「hello world」程序的擴展版,它向我們展示了在 GNU FSF 項目中 C 語言是如何工作的。本書基於GNU Free Documentation License Version 1.3 及其更新版本發布。

《GNU C 語言編程教程》(The GNU C Programming Tutorial)

相關C/C++學習資料私信我 「代碼」即可獲取

作者 Mark Burgess, Ron Hale-Evans ,290頁

本書以邏輯順序向讀者介紹了 C 語言的基本內容。本書內容涵蓋了 C 語言的全部主要內容的細節以及如何使用 C 語言編程,特別強調了GNU/Linux編譯器以及相關軟體。

一些章節主要介紹了函數,變量以及聲明,作用域,表達式和操作符,參數,指針,判定,循環,數組,字符串,輸入輸出等等。

本書基於GNU Free Documentation 協議 Version 1.1版發布。

《 C 語言基礎》(Essential C)

相關C/C++學習資料私信我 「代碼」即可獲取

作者 Nick Parlante ,45頁

這份簡短的文檔解釋了 C 語言全部的常用特性和技術。這份文檔十分簡潔,因此它的目標人群是已經具有其他程式語言背景的人。

內容包括變量,整型,浮點型,類型提升,截斷,操作符,控制結構(if,while,for),函數,數值參數,引用參數,結構體,指針,數組,預處理器以及 C 語言標準庫函數。

目錄:

簡介基礎類型與運算符控制結構複雜數據類型函數雜項高級數組與指針運算符和標準庫根據作者的描述,我們得知這是一本基於開源協議發布的書籍。

《Beej的 C 語言教程》(Beej’s Guide to C Programming)

相關C/C++學習資料私信我 「代碼」即可獲取

作者 Brian 「Beej」 Hall ,130 pages

本書試圖為那些心存困惑的讀者帶來一種僅能通過純粹 C 語言編程而產生的快感。

章節:

構建程序的基本結構塊變量,表達式和,語句。變量就是一個數字的名字——一個 C 語言表達式可以包含其他的表達式以及運算符。文章還介紹了if,while,do while以及程序重複執行的for語句。函數——當程序塊變得很大,或是當這些程序塊用來執行一些特定的工作時,我們會把它們封裝到函數中。變量(續篇)——探討了變量的作用域和儲存類型指針——它們是數據在內存中的地址。就像一個整型的值可以是12,一個指針的值就是數據在內存中的地址結構體——結構體允許你將邏輯上相關的變量分組。隨後你可以將其作為一個整體來使用。數組——一組相關數據的線性集合字符串—— C 語言中的字符串就是內存中的一組連續的比特,包含了一組字符動態內存——探討了malloc(), free(), realloc() 和 calloc() 函數更多內容——指針運算,typedef,枚舉,結構體聲明,命令行參數,多維數組,類型轉換和類型提升,不完整類型,void指針,NULL指針和static關鍵字標準輸入輸出庫——用來進行文件的讀寫。字符串操作——用來查找子串的函數,連接字符串的函數,獲取字符串長度的函數,等等。算數——一些可以滿足你基本算數需求的函數。本書基於Creative Commons Attribution-Noncommercial- No Derivative Works 3.0 協議發布。

《現代 C 語言》(Modern C)

相關C/C++學習資料私信我 「代碼」即可獲取

作者 Jens Gustedt ,310頁

本書鼓勵讀者逐級探索 C 語言的特性。內容一共分為如下五層境界:

第一層——使讀者了解最基本的 C 語言程序。了解使用 C 語言的目的和數據結構,以及如何去使用它們第二層——詳細的說明了大部分主要概念以及特性,包括控制結構,數據類型操作符和函數。這一級的主要目的是讓讀者能夠對於這些運行程序必備的知識,有更深刻的理解。第三層——進入 C 語言的核心部分。詳細的解釋了指針,讓你熟悉 C 語言的內存模型,並且讓你了解大多數 C 語言庫的接口第四層——深入理解一些特定的主題。比如性能,重入,原子性,線程及泛型編程第五層——探討了作者對這門語言未來發展趨勢的理解本書基於Creative Commons Attribution-Noncommercial- No Derivative Works 3.0 協議發布

《GCC簡介》(An Introduction to GCC)

相關C/C++學習資料私信我 「代碼」即可獲取

作者 Brian Gough ,144頁

本書介紹了 GNU C 語言和 C++編譯器——gcc 和 g++,它們是 GNU 編譯器套裝(GCC)的一部分。

本書介紹了如何使用編譯器。通過多年以來對郵件列表中的問題的觀察,本書帶領讀者直擊 GCC 的重要內容。

章節介紹:

編譯c程序——介紹了如何使用gcc來編譯 C 語言程序。單個文件或多個文件均可以編譯,也可以使用作業系統函數和頭文件。編譯選項——介紹了gcc中一些常用的編譯選項。這些參數控制一些功能,例如搜索庫函數和頭文件的路徑,提供額外的編譯告警和診斷。預處理宏和 C 語言方言。使用預處理器——描述了cpp(GNU C preprocessor)的使用方法,cpp是GCC的一部分。預處理器會在編譯前將代碼中的宏展開,當GCC處理c或者c+代碼時,預處理器會自動被調用。編譯帶有debug信息的程序——提供了一個-g選項用以在中間文件和可執行文件中存儲額外的調試信息。這些調試信息使得我們可以追蹤錯誤,將機器指令中的問題定位到原始碼中。優化編譯——GCC是一個優化過的編譯器。它提供了很多選項,可以加速編譯或是減少編譯後文件的體積。編譯C++程序——介紹了如何使用GCC編譯C++程序以及該語言可以使用的命令行選項。平臺相關選項——介紹了一些常見平臺可以使用的選項排錯——GCC提供了一些幫助和診斷選項用於幫助我們定位編譯過程中出現的問題。編譯器相關工具——介紹了GCC編譯過程中會用到的一些有用的工具。包括用來創建庫的 GNU 歸檔工具 ar,GNU 性能和覆蓋率測試程序gprof 和 gcov編譯器是如何工作的——詳細介紹了GCC是如何把源文件編譯為可執行文件的。編譯是一個多階段過程,涉及很多工具,包括GNU編譯器本身,GNU彙編器,以及GNU連結器。在編譯過程中使用的各種工具,我們統稱為編譯鏈。檢查編譯後的文件——介紹了一些用來檢查可執行文件和obj文件內容的工具。常見錯誤信息——介紹了gcc和g++產生的最常見的錯誤和告警信息。每種情況都帶有原因分析,樣例以及建議的解決辦法。獲取幫助——如果讀者遇到了書中沒有提到的問題,還有很多介紹GCC和語言的手冊可以參考。本書基於GNU Free Documentation協議發布

很多 C 語言書籍都可以免費下載,但是可惜的是它們並沒有以開源協議來發布,或其基於何種協議並沒有明確說明。以下對其進行介紹,排名不分先後:

《C編程導論》( Introduction to C Programming )– 作者 Rob Miles《新標準 C 語言》(The New Standard C: An Economic and Cultural Commentary) – 作者 Derek M. Jones《使用標準 C 語言進行面向對象編程》(Object-Oriented Programming with ANSI-C )– 作者 Axel-Tobias Schreiner《編寫零缺陷的 C 語言代碼》(Writing Bug-Free C Code) – 作者 Jerry Jongenius最後,如果你想買一本權威參考書,請認準《C程序設計語言》(The C Programming Language)。這本書非常簡練,不適合新手,但是被奉為經典。

相關焦點

  • 學習C語言必看的最經典書籍
    、提高、開發、拓展全攻略》  這本比較好的c語言學習書籍從實際應用入手,以實驗過程和實驗現象為主導,循序漸進地講述51單片機c語言編程方法以及51單片機的硬體結構和功能應用。全書共分5篇,分別為入門篇、內外部資源操作篇、提高篇、實戰篇和拓展篇。本學習c語言必看的最經典書籍內容豐富,實用性強,書中大部分內容均來自科研工作及教學實踐,許多c語言代碼可以直接應用到工程項目中。本書配套光碟提供13講近30學時的教學視頻和本書實例代碼,可使讀者更快更好地掌握單片機知識和應用技能。
  • C語言學習推薦書籍
    以下介紹一些書籍,希望它們可以使用你的代碼更加優美。《系統程式設計師成長計劃》第10章 文本處理第11章 分離用戶界面與內部實現第12章 撰寫設計文檔附錄C語言中接口定義的不同形式《華為技術有限公司c語言編程規範》有一句話說的很好,「規範大於配置」。
  • 書籍分享|零基礎學習C語言(附電子書)
    Hello,我是牙兒今天給大家推薦幾本適合小白的C語言書籍一起來看看都有哪些吧~C primer
  • C語言入門書籍推薦和下載,小白自學經典
    作為一個 80 後老程式設計師,我想用我的經驗給大家推薦幾本經典書籍,讓小白少走彎路。1) 《C語言小白變怪獸》既適合對計算機一竅不通的小白,也適合有編程基礎的讀者,還可以用來進階。暢銷 30 餘年的C語言入門經典書籍,至今無人能撼動它的地位,它是最符合C語言標準的書籍,作為一名C語言程式設計師,不收藏一本都覺得自己很水。但是對於沒有計算機基礎的小白,這本書就有點蛋疼了,信息量大,涉及的知識面廣,書也比較厚,得有耐心才行。
  • C語言入門必備書籍
    《C語言入門經典》例子簡單生活化,而且每個例子分析很細。章節安排合理,章末的例子還特別注重思路的引導,而且分析起來特別有成就感,這本書是自學過程的一本好書。這本書很適合希望系統學習C語言的讀者,正如他的名字,是一本不錯的入門和進階的書。書中的每一個知識點都有很多生動簡單的示例,並給出了相應的運行結果。總之,在看這本書的過程中,有一種一氣呵成的感覺。
  • 通過這 9 本開源好書學習 C 語言
    我們都是通過閱讀書籍來幫助掌握某種語言的基本知識。隨後又通過閱讀書籍來全面探索這門語言的靈活性。我仔細考察了一些我最喜愛的 C 語言書籍,並從其中選出了對我意義最大的九本。C 語言是一種通用的、面向過程的高級程式語言。也是最具流行度和影響力的程式語言之一。該語言在設計時就被設計為可以通過編譯器進行編譯,以此來對內存進行底層操作、高效地執行機器指令以及在運行時僅需要最小的支持。
  • 【收藏】經典C語言書籍
    今天小編給各位愛學習的程式設計師們帶來了一些經典的C語言技術書籍《C標準庫(英文版)》結構清晰,內容權威
  • 學習編程道路上的入門書籍之C篇
    學習編程專欄連載編程學習編程道路上的入門書籍之C篇,此篇內容將包含一些算法以及數據結構相關內容,文章中的所有推薦的書籍均來自知乎社區大牛力薦書籍、豆瓣評分較高書籍、各語言社區比較熱門書籍以及京東、亞馬遜、噹噹熱銷書籍的重合書籍。
  • C語言入門學習和書籍推薦
    1、C語言適合當第一門程式語言學習①、C語言語法相對簡單,但又比較完整和嚴謹,包含該有的各種元素。學完C語言語法,要學習其它程式語言就很容易了。②、C語言接近底層,可以了解內存和計算機的基本原理。③、許多基礎課程比如算法與數據結構教材都是以C語言為例子的,特別是中國版的書籍。
  • 程式設計師學習C語言編程的4種方法,C語言之父的大作不容錯過!
    如果新手要學習編程,一些前輩都會建議從Python、PHP、Java開始學。不過,有些程式設計師是直接從C語言強勢入門編程的。那麼,如何學習C語言呢?下面w3cschool提供4種入門C語言的方法:0、刷題絕大多數的程式設計師學編程的時候,還是會開啟簡單粗暴的刷題模式。刷面試對於面試以及技術的提高大有裨益,刷題網站強推Leetcode、Codility、Lintcode等。
  • 推薦幾本適合新手父母的實用書籍
    也許和自己一直有閱讀習慣有關,自懷孕開始,不知不覺已經讀過不下20本和育兒相關書籍。縱使網絡有很多特別好的育兒文章以及經驗分享,但是我認為讀書依然是必不可少。一本好的書籍,可以讓你初步搭建起知識架構,隨著知識的豐富以及實踐,通過日常的積累繼續豐富這個知識架構。在寶寶不同的階段,提前閱讀相關的書籍了解,心中有數。
  • 媲美Matlab的神器——Python語言的十本經典入門書籍
    既然通過Python編程,能有效減少各種等待排號時間,提升生活質量,而且還能兼職賣代碼賺錢,還能更好地找工作,不學點Python豈不out了? 下面是10本Python經典學習書籍供參考(圖片取自網際網路,版權歸原作者所有,如涉及版權等問題,請立即聯繫我們,我們會予以更改或刪除相關文章,保證您的權利)。
  • Java程式設計師:推薦9本Java編程書籍
    在Java的編程長河種,誕生了許多經典的書籍。下面給大家推薦9本「性價比」最高的,不管你是Java新手,還是已經做Java開發超過5年,都是很值得一看的書籍。這些書涵蓋了各種領域,包括核心Java基礎知識、Java集合框架、多線程和並發、JVM內部和性能調優、設計模式等。
  • 初學者要如何學好C語言
    好了,這本書我也不想說太多了,有興趣大家可以百度一下:)Kernighan和Ritchie的《The C Programming Language》(中譯名《C程序設計語言》)堪稱經典中的經典,不過舊版的很多內容都已過時,和現在的標準C語言相去甚遠,大家一定要看最新的版本,否則不如不看。另外,即使是最經典最權威的書,也沒有辦法面面俱到,所以手邊常備一本《C語言參考手冊》是十分必要的。
  • C 語言程序設計---入門篇
    從本篇文章開始,我將分享 C 系列,將 C 語言的方方面面,從最基礎的語法帶領大家入門
  • 初學者:如何學好C語言?
    好了,這本書我也不想說太多了,有興趣大家可以百度一下:)Kernighan和Ritchie的《The C Programming Language》(中譯名《C程序設計語言》)堪稱經典中的經典,不過舊版的很多內容都已過時,和現在的標準C語言相去甚遠,大家一定要看最新的版本,否則不如不看。另外,即使是最經典最權威的書,也沒有辦法面面俱到,所以手邊常備一本《C語言參考手冊》是十分必要的。
  • 值得新手媽媽收藏的十本育兒書籍
    作為父母,通過書籍的閱讀和學習,科學、系統的了解幼兒成長的過程,以及在這個過程中,關於成長的一些共性及特點,這樣的話,父母才可以找到適合自己孩子的教育方法。在這裡,給大家推薦十本經典的育兒書籍:一、幫助了解幼兒成長規律的書籍《捕捉兒童敏感期》,作者:孫瑞雪
  • C語言學習資源整理
    (文中連結請點擊最下方閱讀原文打開)包括四個方面,依次是:C語言入門課程:主要針對入門新手做的課程整理,如果你有一定的C語言基礎,可以跳過這部分內容;(小白新手,推薦看)C語言實踐項目:整理了一些C語言實戰項目以及項目列表,可以找到很多項目開發點子
  • C Primer Plus 中文版 PDF
    學習C語言如果只推薦一本教材,那麼我一定會推薦這本《C Primer Plus》,豆瓣評分高達9.4分,如今已經更新到了第六版。首先基礎內容非常詳實,c語言的語法規則是比較精煉短小的,而這本書除了精講語法內容,還配有大量的代碼示例和代碼講解,這對於小白來說,是非常重要的。如果一上來就講內容,沒有多少代碼,小白可能根本就不知道怎麼寫代碼。代碼這種東西我覺得跟寫文章類似,剛開始要去模仿,熟練之後自然而言就可以自己創作了。
  • 【C語言】02.第一個C語言程序
    因此,在這裡,我們暫時使用文本編輯工具UltraEdit來寫C語言代碼。 2.寫代碼1> C程序由函數構成寫代碼之前,你首先要知道:任何一個C語言程序都是由一個或者多個程序段(小程序)構成的,每個程序段都有自己的功能,我們一般稱這些程序段為「函數」。所以,你可以說C語言程序是由函數構成的。