[知乎回答] - 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

Comments
Write a Comment

Tags

随笔   游戏开发   Bitcoin   Programming   C/C++   优化   Unity   C++   区块链   知乎   BSV   游戏设计   中国文化   比特币   Unity3D   软件开发   引擎设计   系统架构   Production   idtech   Bitcoin SV   加密货币   项目管理   游戏评论   资源管理   资源流水线   效率   道德经   网络   方法论   模板编程   Blockchain   Lua   Blockchain Computing   Oculus   GDC   渲染   VR   PerfAssist   BitcoinSV   Unity MemoryProfiler   BCH   读书笔记   经济学   信息过载   行业报告   字体   Productivity   图形   网络编程   Dice   协程   EMC   Premake   万物理论   测试   中间件   SatoPlay   Game Engine   新手引导   区块链游戏   Methodology   CI   命令行解析   Science   goroutine   ndk   Ethereum   nanomsg   自动化   Scripting   摘录   Debugging   同步技术   cppcon   C++模板   数据上链   DOOM3   技术评估   Unity GC   C++11   学习方法   Surface Pro 3   Engine Evaluation   CRT   文化   笔记   golang   图形编程   多线程   ETH   Bitcoin Cash   cppcon14   Visual Studio   Unity Coroutine   跨语言可变参数列表   团队协作   货币   Deployment   Visual Assist   工程改进   Michael Abrash   exp   开放世界   权利   量子计算   域名   虚拟现实   系统重构   slua   遮挡剔除   完美转发   协作式调度   Modern C++   Money   类型推导   Memory Debugging   个人成长   小故事   BTC   暴雪   产品   历史   错误处理   Unity Profiler   MOD  

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