C 语言学习的经典书籍有哪些?

关注者
1,275
被浏览
554,925
登录后你可以
不限量看优质回答私信答主深度交流精彩内容一键收藏

把俺在另一个类似问题里的答案贴过来吧。

关于学习C语言,最好的几本书是哪些?

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

首先声明一下,我不是黑。如果是几年前,我会推荐

@王潜升

同学推荐的这几本(毕竟确是经典),但这几本书也不是啥都好,我具体谈一下吧:

  1. 《C程序设计语言》 - 比较短小,跟《C++程序设计语言》的洋洋千页,娓娓道来的风格比较而言,应该说也是C的简洁凝练的体现吧。此书适合有一定实践经验的人作为一个全面熟悉和巩固语言的工具书,不是很适合初学者用来了解和学习。当然了,本书有一定的历史意义,可以买一本纯收藏,亦或安慰一下自己,对K&R稍表敬仰之寸心。总得来说,K&R网上评价一直非常高,这一点我个人持保留意见。
  2. 《C和指针》 - 不要被书名骗了,此书看似专说指针,实则是C语言较完整的语言和运行环境的描述。虽然有一些复制粘贴充篇幅的嫌疑(后面的字符串,数据结构,IO,标准库什么的显得有点大杂烩,好吧我真的不是黑,不过真的有必要把F1一下就能看到的文档都弄进来吗?),不过对一些编译器的实现细节有一些探讨还是值得一读的。对了,有的练习题还不错。总得来说,值得买来略扫一遍。
  3. 《C专家编程》 - 好吧,这个书里面有不少八卦和无厘头,适合宅男们消磨时间用。举个栗子吧,卡耐基梅隆大学的计算机系经常搞活动,有一次搞了个编程竞赛,实现功能巴拉巴拉巴拉,要求就一条——尽可能的快。我会随便说第一名消耗的时间是负数吗?是的,你没看错!这厮写的程序消耗了负数的时间!!想知道真相吗?去找一本来翻翻吧,呵呵。再来一个吧,大家知道MIT人工智能研究室的宅男们整天都在研究什么吗?这些热情的家伙们用LISP去控制自己楼上的电梯升降(据说这货还能自检自己是不是真身,免得被黑客利用了让自己人卡在电梯里出不来)。他们还专门设计了个网络协议(运行在七十年代的互联网上),用来查询楼道里的可乐机里有没有货,够不够凉(就为了少跑点路)。我勒个去,宅到这个地步,家里人知道吗?这下大家知道为啥人工智能多年来都没啥进展了吧。唉,控制不住啊,一说起八卦就停不下来。你是不是已经看到了谢耳朵同学的影子了?是的,我看这个书就有看《生活大爆炸》的感觉,可以买来乐一下。
  4. 《C陷阱与缺陷》 这本书是典型的挑刺党了,不过在我看来,(可能是成书比较古老的缘故),它挑的刺普遍不够硬,没啥杀伤力,基本上都属于初级(勉强中级)错误。实打实写过几年C语言的同学应该明白我的意思,想看那些真正的缺陷和陷阱还是得在实际项目里找啊(我是说的那种一枪把自己的脚轰碎了的那种)。这书没啥好看的,谁要的话我五毛卖给他。

有人问,你巴拉巴拉说这么半天,难道就没有本正常点的书,能够囊括以下所有特征的吗?

  1. 完整翔实,细腻丰满
  2. 不复制粘贴有凑字数嫌疑
  3. 不是专业搞怪和无厘头
  4. 不是专业挑刺党

好吧我说的当然不是谭浩强。

如果是几年前我只能双手一摊——我也不知道。不过有一次偶然间翻阅到这一本书,就产生了这种感觉——如果我是一开始读这个书入门的就好了,呵呵。

C语言程序设计现代方法
C Programming: A Modern Approach, 2nd Edition: K. N. King: 9780393979503: Amazon.com: Books

此书基本符合并超越了俺前面总结的四条,俺随便说几条吧:

  1. 完整覆盖C99超越了K&R。(够新
  2. 内容丰满不亚于《C++程序设计语言》(够厚
  3. 习题质量平均水准比较高。(比上面诸位高出不少
  4. 提供PPT讲义和在线教师资源(就是说你看不懂可以直接问教授啧啧啧
  5. 探讨现代编译器的实现,揭穿了各种古老的C语言神话和信条(适合程序员的纯干货

这五条基本超越上面所有的前辈了。(用"横扫"这个词可能有点大不敬不过管他呢

另一本很短小的书,看没人提到我也说一下吧

Writing Solid Code ── Microsoft Techniques for Developing Bug-free C Programs

很久以前的,可以随便看看反正也不长,半个小时到一个小时就能看完。

终于打完了好累啊嗯嗯。