作為一門古老的編程語言,大家熟知它不僅是因為擁有48年的發展歷程,更主要還是因為當下大部分程序員走入編程世界第一個學習的語言就是C語言。
而近年來高速發展的物聯網和智能設備,又把C語言推向了風口浪尖,讓它一舉成為TOBLE 2019年度編程語言榜首。


熟悉C語言的程序員們更喜歡稱C為“造輪子”的語言,因為它什么都能做。游戲公司后臺開發、通信公司后臺開發、服務端底層應用優化、后臺系統驅動和內核……在程序員眼里,這個48歲的C語言幾乎是無所不能的。
當然,很多人會覺得C語言入門難,不能像其他編程語言一樣快速獲得成就感。但仍然有很多技術大咖建議大家有必要學一下C語言。因為優秀的程序員并不是精通某一種編程語言,而是能精確把握編程思想。
這恰好是學C語言的一大好處——可以深入了解計算機底層運行機制。
現在常見的高級語言的底層幾乎都是C語言實現的,所以,無論是學什么高級原理,要想掌握其內部原理,借助C語言就可以輕松了解。


01
學習C語言的建議
除了C語言本身之外,程序員必學的內容還有數據結構和算法、數據庫原理、計算機網絡、操作系統、設計模式,這些都是從事開發必須掌握的基礎技能。
在初學C語言時,很多新人會覺得太難了,可能會遇到有些問題理解不透,有的是表達方式與以往數學學習中不同(如運算符等)。這個時候萬萬不能不氣餒,不明白的地方多問多想,鼓足勇氣進行學習,待學完后面的章節知識,前面的問題也就迎刃而解。
學習編程語言就是一個堅持看、敲、寫的過程。
給自己定一個學習目標
很多人剛開始學習熱情十分濃厚,但三分鐘熱度過后就失去了興致。當學習有了目標就有了方向,努力往那個方向專研總會學有所成。
認準路線
就按計劃學習C語言的學習路線是從基礎語法再到高階算法,不能一口吃成胖子,所以當大家選擇了一本可以系統學習的書就認真學完。
多思考,多讀源碼
在自己無法自主編寫代碼的時候,可以模仿別人寫的代碼,學習其中的思想,一步步形成自己的東西,慢慢你就會發現你也可以了。
自己改寫程序
通過前面的學習,應該已經掌握一些基本的編程技巧。一定要有自己的想法,然后讓自己的想法通過程序來實現。編程語言的學習過程就是堅持的過程,只要掌握了一種編程語言,再去學習其他的語言就很輕松了。
了解C11新特性
2007 年,C語言標準委員會又重新開始修訂C語言,到了 2011 年正式發布了 ISO/IEC 9899: 2011,簡稱為 C11 標準。
C11標準新引入的特征盡管沒 C99 相對 C90 引入的那么多,但是這些也都十分有用,比如:字節對齊說明符、泛型機制(generic selection)、對多線程的支持、靜態斷言、原子操作以及對 Unicode 的支持。
此次,委員會提出了一些新的指導原則。出于對當前編程安全的擔憂,不那么強調“信任程序員” 目標了。而且,供應商并未像對 C90 那樣很好地接受和支持 C99。這使得 C99 的一些特性成為 C11 的可選項。因為委員會認為,不應要求服務小型機市場的供應商支持其目標環境中用不到的特性。
另外需要強調的是,修訂標準的原因不是因為原標準不能用,而是需要跟進新的技術。例如,新標準添加了可選 項支持當前使用多處理器的計算機。
02
怎么學習C語言
那該如何學C語言呢?希望我整理的 C語言的學習路線,能對你有幫助!
首先是C語言的基礎語法:變量、字符串、條件、循環、數組、函數、結構體等,然后就是指針、內存管理等C語言中至關重要的兩大標準。
因此,學習C語言推薦大家可以從《C Primer Plus》開始入門,系統地了解C語言的基礎語法和簡單應用。
對C語言有一定認知之后,就可以通過《C和指針》和《C專家編程》以及《C陷阱與缺陷》等高階圖書學習C語言中最重要的指針等內容了。


幾乎所有C語言程序員的都會去看斯蒂芬·普拉塔的《C Primer Plus》。這本暢銷38年了圖書對于 C 語言初學者來說,就像引路人一樣意義非凡。
從1984年至今,《C Primer Plus》已經升級到了第6版,作者初心不變——致力于編寫一本指導性強、條理清晰而且有用的C語言教程。所以,書中大量完整的、可運行的程序及詳細的注釋有助于理解代碼和概念。
作者不僅闡述了語法中正確的形式,同時也指出錯誤的代碼出現的問題,更是全面講述了 C 語言編程的相關概念和知識,并且涵蓋了 C 編程語言最近的變動發展、以及 C11 標準。
如果你是學習C的同學,可以選擇《C Primer Plus第6版 中文版》入門。
C語言入門


C Primer Plus(第6版)中文版
作者: 【美】Stephen Prata(史蒂芬 普拉達)
譯者: 姜佑
幾乎所有C語言程序員的都會去看斯蒂芬·普拉塔的《C Primer Plus》。這本暢銷38年了圖書對于 C 語言初學者來說,就像引路人一樣意義非凡。
從1984年至今,《C Primer Plus》已經升級到了第6版,作者初心不變——致力于編寫一本指導性強、條理清晰而且有用的C語言教程。所以,書中大量完整的、可運行的程序及詳細的注釋有助于理解代碼和概念。
與市面上其他的教程書籍相比,《C Primer Plus(第 6 版)中文版》最大的特點就是讀起來不會有枯澀煩躁之感。
因為斯蒂芬·普拉塔十分在意讀者在閱讀過程中的閱讀體驗,所以書中新出現的每一個術語,符號,都給出貼近讀者目前知識儲備的和理解能力的解釋。
而且,這本書在編排上也十分與眾不同,在每個知識點后面都會附帶一個“程序清單”,也就是程序實例,這是理解編程知識點的絕好方法,供初學者自己手動實操,提升編程水平。
更有趣的是,作者不僅闡述了語法中正確的形式,同時也指出錯誤的代碼出現的問題,更是全面講述了 C 語言編程的相關概念和知識,并且涵蓋了 C 編程語言最近的變動發展、以及 C11 標準。
這就是為什么異步君會把先推薦這本書,對初學者來說,系統學習 C 語言是非常有必要的,這本書就是最適合的。


C Primer Plus(第6版)中文版習題解答
作者: 【美】Stephen Prata(史蒂芬 普拉達)
在過去 40 多年里,C 語言已成為最重要、最流行的編程語言之一,學習 C 語言的人很多,但能運用自如的卻遠遠不到一半。
為了每個程序員都能將所學的知識落實到實際項目,《C Primer Plus(第 6 版)中文版 習題解答》面世了,它是Stephen Prata根據《C Primer Plus(第 6 版)中文版》而撰寫的,由北京師范大學名師詳細剖析所有題目,全面提升 C 編程能力的優選編程練習冊。
針對于提高 C 語言的編程技能、理解計算機原理。看書很重要,但訓練更重要,看書和做題應該同時進行的才能快速提升編程水平,從而在實際項目中運用自如。
它在《C Primer Plus(第 6 版)中文版》的每章內容做了簡單總結和梳理的基礎上,對所有復習題和編程練習做了詳細的解答。
人性化的是,書中的每一章節首先提供了思維導圖,方便讀者快速查詢常用的知識點,然后簡明扼要地概括和提煉了每章的難點和重點知識,它既可作為學習筆記,也可以作為知識點速查手冊。
C語言進階


C和指針
作者: 【美】Kenneth A.Reek
譯者: 徐波
“不會用指針就不會 C 語言”,這是程序員間互相流傳的信條,他們認為正是指針使得 C 語言如此之強大,所以想要掌握 C 語言的精髓,首先要精通指針!
那么要如何學好指針呢?推薦大家《C 和指針》這本書,作者是美國Rochester工業學院計算機系教授Kenneth A . Reek,他有著20年的C編程教學經驗,他的Pointers on C更是獲得ACCU的高度評價。
CSDN論壇大牛曾這樣點評這本書:“是在職人員開發必不可少的參考書,經典中的經典“。
除此之外,作者在書中將各種指針用法都寫出來了,甚至連一些堪稱奇葩的指針用法也沒有放過,以簡潔準確的文字、配合貼切的圖示來進行講解,讓廣大讀者對指針和數組有了更加深刻的認識,特別是多維數組、指針的指針、指向數組的指針和指針的數組的區這些平日里讓人頭疼的知識點。
而且,《C 和指針》還提供了與 C 語言編程相關的全面資源,通過對指針的基礎知識和高級特性的探討,覆蓋了數據、語句、操作符和表達式、指針、函數、數組、字符串、結構和聯合等幾乎所有重要的 C 編程話題,并且給出了很多編程技巧和提示,加上每章后面有針對性很強的練習,幫助程序員把指針的強大功能融入到自己的程序中去。
ACCU主席Francis Glassborow曾說:“我竭盡全力地推薦這本我所見過的C編程入門圖書。作者深知讀者所需,并為他們打下良好基礎。如果你已經開始學習C語言但始終不得要領,不妨試一試這本書。”
這本書非常適合 C 語言初學者和初級 C 程序員閱讀,作為程序員,啟蒙書很重要,但讀完啟蒙書后,強烈建議將這本書作為你第二本必讀書。


C陷阱與缺陷
作者: 【美】Andrew Koenig
譯者: 高巍
不管你是普通程序員還是 C 編程高手,在進行 C 編程過程中,都會從詞法、語法、語義、鏈接、庫、預處理器、可移植性等層次和方面遇到問題——編程過程中的陷阱和障礙。
那么要如何規避這些陷阱和障礙呢?
建議一定要讀Andrew Koenig教授的《C 陷阱與缺陷》, 他是AT&T公司Shannon實驗室大規模編程研究部門中的成員,同時也是C++標準委員會的項目編輯,編程經驗超過30年,其中有15年在使用C++,他還出版了超過150 篇和C++有關的論文,并且在世界范圍內就這個主題進行過多次演講,是世界級的C編程大師。
《C 陷阱與缺陷》主題是你平時往往不會注意 C 中的各類細節:注釋的嵌套性,怎么判斷編譯器是否允許嵌套注釋、運算符優先級,結合順序,編譯器貪婪、assert 的實現方法,避免 if、少敲一個分號導致各種血案、注意函數、if 等的作用域、注意字符集,防止移植性問題、變長參數,stdargs 等等,及一些非常底層,會涉及到大端法、小端法和數據的位模式的問題。
ACCU主席Francis Glassborow曾說:
“Andrew Koenig以自己在Bell實驗室時發表的論文為基礎,結合自己的工作經驗擴展成這本對C程序員具有珍貴價值的經典著作。寫作本書的出發點不是要批判C語言,而是要幫助C程序員繞過編程過程中的陷阱和障礙。本書所揭示的知識,至少能夠幫助你減少C代碼和初級C++代碼中90%的Bug?!?/p>
書中所有內容是作者結合自己的工作經驗而撰寫的,并給出了若干具有實用價值的建議,本書的主旨就是要幫助 C 程序員繞過編程過程中的各種陷阱和障礙。
本書適合有一定經驗的 C 程序員閱讀學習,即便你是 C 編程高手,本書也應該成為你的案頭必備書籍。


C專家編程
作者: 【美】Perter Van Der Linde
譯者: 徐波
最優秀的 C 程序員所使用的編碼技巧,你知道幾個?
如何深入學習 C 語言知識是每個 C 程序員都遇到的難題,市面上的書籍大多數枯燥乏味,而Peter van der Linden 認為:任何人都可以享受編程,編程應該是一項精妙絕倫、充滿生機、富有挑戰的活動,而講述編程的書籍也應時時迸射出激情的火花。
Peter van der Linden是一名技術專家和技術作家。他曾在Sun公司和蘋果公司工作多年,并曾任摩托羅拉公司首席Android技術布道師、Immersion公司首席Android開發布道師,自2014年至今在萬事達卡公司任高級開發布道師。他還出版了一系列有關C語言、Java語言及Linux操作系統的經典技術圖書。
其中《C專家編程》展示了專業的C程序員所使用的編碼技巧,并專門開辟了一章對C++的基礎知識進行了介紹。書中對C的歷史、語言特性、聲明、數組、指針、鏈接、運行時、內存以及如何進一步學習C++等問題從實例出發,進行了細致的講解和深入的分析,Peter認為這對C程序員具有非常高的實用價值。
同時,它也是一本教學性質的書籍,但它希望重新把快樂融入編程之中,書里所提到的絕大多數教程、提示和技巧都是無法在其他書上找到的,即使有的話,它們通常也是作為心得體會手工記錄在手冊的書頁空白處或舊打印紙的背面。這本書是Peter以及 Sun 公司編譯器和操作系統小組的同事們在多年 C 語言編程實踐中,積累了大量的知識和經驗后,用生動的語言來講述這些有趣的 C 語言故事和軼聞,諸如連接到因特網上的自動售貨機、太空軟件中存在的問題,以及一個 C 語言的缺陷怎樣使整個 AT&T 長途電話網絡癱瘓等。
ACCU主席Francis Glassborow曾說:
“即使你讀過Andrew Koenig的《C陷阱與缺陷》,你還是應該看看Peter van der Linden的這本書。我想,他們兩人的書你都應該千方百計地弄到,如獲至寶地捧讀。如果我是你的上司,這是必須的要求?!?/p>
斯克蘭頓大學計算機科學系教授Jack Beidler曾說:
“這本書不只是寫得清晰,讀起來也很有趣。這本書的基調和風格使其備受專業程序員的喜愛,也會使其非常受大學生的喜愛。單單是附錄A就已經使這本書必須購買了。書中充滿了極好的建議?!?/p>
希望《C專家編程》能幫助你精通這門日益流行的從 C 語言演化而來的語言。
C Primer Plus 第6版中文版學習視頻


這是以暢銷圖書《C Primer Plus》第6版中文版為教材的一門C語言基礎課程,詳細講解了程序設計的概念及C語言核心知識要點。通過本課程的學習,使學習者掌握程序設計的基本方法,具有一定的的應用計算機解決問題的能力。
版權聲明:本文內容由互聯網用戶自發貢獻,該文觀點僅代表作者本人。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如發現本站有涉嫌抄襲侵權/違法違規的內容, 請發送郵件至 舉報,一經查實,本站將立刻刪除。