[知乎回答] C 语言学习的经典书籍有哪些?

[知乎回答] - C 语言学习的经典书籍有哪些?

首先声明一下,我不是黑。如果是几年前,我会推荐 @王潜升 同学推荐的这几本(毕竟确是经典),但这几本书也不是啥都好,我具体谈一下吧:

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

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

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

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

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

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

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

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

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

另一本很短小的书,看没人提到我也说一下吧
Writing Solid Code ── Microsoft Techniques for Developing Bug-free C Programs
很久以前的,可以随便看看反正也不长,半个小时到一个小时就能看完。

终于打完了好累啊嗯嗯。

(完)
Gu Lu
[2014-03-14]

知识共享许可协议
本作品由Gu Lu创作,采用知识共享Attribution-NonCommercial-NoDerivatives 4.0 国际许可协议进行许可。