想學 C 語言,有沒有經典的書?

大學學過c,過了二級後就沒再看過,現在連函數都不認識了。


入門:

0)C程序設計 (一本神奇的書,看了會影響未來三年的編程水平,負面影響)

1)一站式學習C編程

2)C Primer Plus (入門首選)

3)

高質量程序設計指南
(一定要看)

4)從問題到程序
(最佳高校教材)

——————————————————

進階:

1)C專家編程

2)C陷阱與缺陷

3)C和指針

4)C/C++深層探索

5)C語言解惑

6)你必須知道的495個C語言問題

———————————————————

深入:

1)C程序設計語言 (聖經)

2)
C語言參考手冊

3)C標準庫

4)
C語言介面與實現 (必看)

5)C語言的科學和藝術

6)編程精粹

————————————————————

其他:

1)數據結構與演算法分析

2)Linux程序設計

3)現代編譯原理-C語言描述

____________________________________

以上僅供參考。

這是我的C語言書單:C語言進階與強化


最經典的要數《The C Programming Language》了,也就是樓上「狼大人」所說的 KR C。也有中文版《C程序設計語言》(機械工業出版社),值得一看。。。

其實,很多書都可以的,想學好一門語言,最重要最不可少的就是多加練習,親自動手去寫。。。


上次我一個同學也問,到 V2EX 問了一下,推薦得是 《嗨翻C語言》

進階可以用 KR


請收藏:

如何學好C語言


經典的書 也就那基本,送本新書,感興趣的可以看看。

每周一書-編寫高質量代碼:改善C程序代碼的125個建議

https://www.zhihu.com/people/xuan-hun

玄魂工作室-玄魂 · 2 小時前

首先說明,本周活動有效時間為2016年8月28日到2016年9月4日。本周為大家送出的書是由機械工業出版社出版,馬偉編著的《編寫高質量代碼:改善C程序代碼的125個建議》。

編輯推薦

  10餘年開發經驗的資深C語言專家全面從C語法和C11標準兩大方面深入探討編寫高質量C代碼的技巧、禁忌和實踐

  C語言因為既具有高級語言特性,又具有彙編語言特性,所以它是近二十幾年來使用較為廣泛、生命力較強的編程語言。無論是操作系統、嵌入式系統、普通應用軟體,還是移動智能設備開發,它都能夠很好地勝任,是公認的強大的語言。但是,它也是廣大程序員認為較難的一門語言,大多數人都停留在「入門」階段。作為一位C程序員,如何才能編寫出健壯、優雅、高質量的代碼?本書作者結合自己在該領域十幾年的鑽研和實踐,從以下幾個大的方面梳理了經常困擾「入門者」的幾大類問題:

  基礎數據類型問題:如數據取值範圍、整數溢出與迴繞、浮點數精度、數據類型轉換的範圍檢查等;

  數組與指針問題:指針與地址、野指針、空(null)指針、NULL指針、void指針、多級指針、指針函數與函數指針、數組越界與緩衝區溢出等;

  內存管理問題:內存分配、內存釋放、內存越界與內存泄漏等;

  字元與字元串問題:串拷貝與內存拷貝、內存重疊與溢出、字元串查找等;

  高效設計問題:表達式設計、演算法設計與函數設計、內聯函數與宏的取捨等;

  其他雜項問題:信號處理、文件系統、斷言與異常處理、內嵌彙編的使用等。

作者簡介

  馬偉,

  現任華康移動醫療技術總監,資深軟體開發專家和架構師,微軟有價值專家(MVP)。擁有10餘年軟體研發和研發管理經驗,擅長C、C++、.NET、Java等編程技術,專註於互聯網應用的高性能架構設計與大數據挖掘,推崇互聯網開源文化。

  暢銷IT技術書籍作家,著有《易學C#等暢銷書,同時在大陸和中國台灣兩地發行,廣受讀者好評。

目錄前言/序言

確實是一本好書啊,下面關鍵來了,如果你心動了,如何得到本書呢?

1.在微信訂閱號(xuanhun521)回復「每周一書」,找到本篇文章,文章下面留言,談談你對C語言的認識,理解,感悟或者有趣的故事和想法

2.讓你的朋友幫助給你的留言點贊

3.如果你的感悟或者故事很精彩,可以投稿給我們。稿件被採納了,一次加100分。

微信掃描下發二維碼,關注訂閱號,回復「每周一書」,了解最新的運行情況,最近的送書小活動,獲取書籍的方法都在文章裡面。

每周一書,總有一本是你喜歡的。

點擊打開二維碼

玄魂工作室-精彩不斷


中文版《C程序設計語言》(機械工業出版社)翻譯的很差勁,C Primer Plus翻譯的還行,講的也很細。強烈不建議看 譚浩強的書,各種問題,代碼一點都不優美!


歡迎使用我們的網站學習編程語言:計蒜客 - 讓學習更有味!


大多數人都是從譚教授的書開始的,不過c prime的口碑更好,給個種子你自己下吧,全是mobi和azw

C Primer Plus(第5版)中文版 - 普拉塔 (Prata S.)

C++ Primer Plus(第五版)中文版

21天學通C++第7版

C++編程思想(兩卷合訂本)

嗨翻C語言 (圖靈程序設計叢書) - [美]David Griffiths Dawn Griffiths

征服C指針- 前橋和彌

深入理解C指針 (圖靈程序設計叢書)

演算法精解:C語言描述 (O"Reilly精品圖書系列) - (美)Kyle Loudon

編程精粹_編寫高質量C語言代碼 - Steve Maguire你得先安裝btsync,然後添加這個種子(密鑰) BI3ACGSYU7DTURRU44AKLJ6FQNYXZG64P


《The C Programming Language》

多年以後,出於給別人推薦書籍的目的,重新審視幾本經典的c相關書籍,驚奇的發現,最好最經典的還是這本沒有之一!內容絕對精要,幾乎毫無廢話,摒棄了所有無關的瑣碎細節,留下的確實c最核心的部分(同時知識點都是覆蓋到了的),同時卻深入淺出(比如竟然有malloc的簡單實現)。

說實話,幾年前第一次閱讀的時候是比較粗略的,當時是已經學過了c的,看下來的感覺是內容太少太簡練了,對於初學者太難,對於有經驗的乾貨又太少。時光流轉,轉眼間從c、c++、python、java一路寫來,雖然沒有成為高手,但是見識也有了些。之前是喜歡細節多的大部頭,甚至於有時候沉溺於茴香豆有幾種寫法,現在的想法卻完全相反了:一本好的語言書(除了那種專著或者參考手冊),1、清晰簡練的將清楚最核心的內容;2、取材得當,剔除一切不必要的細節;3、能夠深入淺出,讓讀者對於最核心的部分有較好的訓練。毫無疑問,此書是完美符合這三點的。

那麼,這本書就沒有缺陷了么?如果非要吹毛求疵,一是沒有涵蓋最新的C規範,二是後面的附錄可以不要(因為目前有非常好的在線參考資料),這樣書籍就能縮減到150頁!

對於這本書是不是適合入門,大家卻又很大的異議,就像我自己看法也是經歷了如此的轉變。分析我自己的經歷,發現是說不適合的是沒有利用好這本書,那麼這本書怎麼用才能達到好的效果呢?一句話:踏踏實實的做完所有的習題,全部弄明白!當然這需要一定的耐心定力。

===============================================

再順便說下另外幾本經典的c相關書籍的看法:

《C語言程序設計:現代方法》、《headfirst c》:如果實在沒有耐心的話可以看看這兩本,其中第二本是一貫的headfirst風格,通俗易懂

《c和指針》:不錯的進階書籍,有細節也有深度

《c專家編程》、《C陷阱與缺陷》:當做飯後甜點大概看看就行了

《c語言的科學與藝術》:不僅是c語言,也是比較好的入門書,缺點是也有點老了。另外涉及了太多c無關的東西,當然你也可以看做是特色或者優點。

《c primer plus》:只能說是還不錯,主要是作者太啰嗦了,取材不當,細節太多,竟然要700多頁。雖然啰嗦對於一些人更容易懂,但是這麼啰嗦的話還不如去看《headfirst c》呢

總之,《c和指針》是進階時推薦一看的,其他的就看心情了,可看可不看。當然,如果要應付國內某些公司蛋痛的筆試的話去看林銳那本吧,就不評價了。


本人非計算機專業,我自己的經驗是,語法相關的書準備一兩本,前面各位提到的隨便一本,先瀏覽一遍語法,然後github上找一些代碼量不大的c項目或者知名項目的部分模塊閱讀,多看不同項目的代碼。


我們老師自己寫的書:跟我學c語言


King寫的 C Programming: A Modern Approach 第二版。其他先不用看了。

http://www.amazon.com/gp/aw/d/0393979504


推薦你一個C語言入門教程:

《C語言核心30天突破》


  • 21st Century c
  • C Programming: A Modern Approach
  • Intermediate C Programming

  • C Programming: An Advanced Course
  • Expert C Programming


連函數都不認識了, 當初你是怎麼過的2級......

好吧, 說明你之後不管是C還是B還是什麼玩意兒, 根本沒碰過編程么


KR的《C程序設計語言》。

最精闢、最權威、最全面。


日本柴田望洋的《明解C語言》 可作為你的第一本C語言書。 別用國產書籍入門,除非應付考試。


C程序設計語言 最好買原版英文的 也就是The C Programming Language


推薦閱讀:

我怎樣成為@vczh一樣的大神?
每一次想自學C/C++都會倒在使用VS,這次又是一樣,幾乎抓狂,是不是智商有問題?
編程語言分成這麼多種有什麼意義,難道不都是語法糖嗎?
C 語言王者歸來,原因何在?
為什麼while (*s++ = *t++);這句代碼的作用是複製字元串?

TAG:編程語言 | C編程語言 |