谭浩强c语言程序设计第三版

99ANYc3cd6
预计阅读时长 10 分钟
位置: 首页 C语言 正文

总体评价:经典入门,但争议巨大

一句话总结:一本功不可没的“敲门砖”,但不应是唯一的“圣经”。

谭浩强c语言程序设计第三版
(图片来源网络,侵删)
  • 功不可没:在90年代末到21世纪初,国内优质编程教育资源极度匮乏,这本书以其系统性、全面性和对中文读者的友好性,为无数初学者打开了C语言乃至计算机世界的大门,它的影响力是历史性的。
  • 争议巨大:随着时代发展和编程教育理念的进步,这本书的许多缺点也日益凸显,被后来的学习者、从业者和教育者广泛批评。

主要优点(为什么它曾如此流行)

  1. 体系完整,覆盖面广:第三版内容非常全面,从C语言基础语法(数据类型、运算符、流程控制)到高级特性(指针、结构体、文件操作、位运算)都进行了讲解,学完这本书,可以对C语言有一个比较完整的认识。
  2. 循序渐进,适合自学:书的章节安排由浅入深,知识点讲解相对细致,对于没有任何编程基础的初学者来说,比较容易跟上思路。
  3. 例题丰富,习题量大:书中包含了大量的程序示例,并且每章后面都有大量的习题,这对于初学者通过动手实践来巩固知识点非常有帮助。
  4. 中文语境,本土化好:作为国内作者,谭老师深知中国学生的学习习惯和思维模式,用词和讲解方式更贴近国内读者,降低了学习的门槛。
  5. 历史悠久,配套资源多:由于使用时间最长,市面上关于这本书的学习资料、PPT、视频课程、习题解答等资源非常丰富,方便学习者查找和参考。

主要缺点(为什么现在不推荐首选)

这是现代批评者集中火力攻击的地方,也是你在选择学习资料时需要重点考虑的。

  1. “毒教材”式的代码风格(最致命的缺点)

    • 滥用goto语句:书中为了实现某些功能(如多层循环退出),频繁使用goto语句,这破坏了结构化编程的原则,是现代编程极力避免的坏习惯,初学者会模仿这种不良风格。
    • 命名不规范:变量名常常使用a, b, c, i, j, k等无意义的单字母,或者a1, a2等,这使得代码可读性极差,不利于培养良好的编程习惯。
    • 代码冗余,效率低下:一些实现方式非常啰嗦,有更简洁、更高效的写法却不用,在循环和字符串处理方面,常常可以看到不必要的复杂操作。
  2. 对指针的讲解“劝退”

    • 指针是C语言的灵魂,也是学习的最大难点,谭浩强老师的书试图把指针讲得“简单”,但结果往往是“讲不清楚”
    • 他常常用一些不恰当的比喻(如“变量的地址就是指针”),导致初学者对指针的理解停留在表面,形成“知其然不知其所以然”的困惑,甚至产生畏惧心理,很多人卡在指针这一章就放弃了。
  3. 概念模糊,不够严谨

    谭浩强c语言程序设计第三版
    (图片来源网络,侵删)
    • 书中有些地方对C语言核心概念的讲解不够精确,甚至存在一些过时或不准确的描述,对数组名、函数指针等概念的解释容易引起误解。
    • 没有深入讲解C语言的底层机制(如内存布局),导致学习者知其然而不知其所以然。
  4. 与现代编程实践脱节

    • 书中几乎没有提及代码规范、模块化设计、版本控制、调试工具(如GDB)等现代软件开发中至关重要的工程实践,它教你的是“如何写出能运行的C代码”,而不是“如何写出好的C程序”。

适合哪些人阅读?

尽管缺点很多,但在某些特定情况下,它依然有其价值:

  1. 应试需求:如果你的学校、课程或考试指定了这本书作为教材,那么你必须阅读它,因为考试内容会围绕它展开。
  2. 怀旧与回顾:如果你是当年学C语言时用过这本书的程序员,可以拿出来回顾一下,感受一下时代的变迁。
  3. 作为辅助参考:当你对某个知识点(比如enumunion)有模糊印象,想快速查找一个基本用法时,可以把它当作一本“字典”来查阅,但不要深究其背后的思想和最佳实践。

更好的现代替代方案(强烈推荐)

如果你是现在开始学习C语言,我强烈建议你选择以下几本经典书籍作为入门和进阶:

入门首选(兼顾C语言思想和实践)

  1. 《C Primer Plus》(第6版) - Stephen Prata

    • 优点:被誉为“C语言学习的圣经”,内容极其详尽、严谨,讲解清晰透彻,例子质量高,它不仅教你语法,更在潜移默化中培养你的编程思维和良好习惯,对指针的讲解也比谭浩强的书好得多,非常适合自学。
    • 缺点:书比较厚,需要耐心。
  2. 《C程序设计语言》(The C Programming Language, K&R) - Brian W. Kernighan & Dennis M. Ritchie

    • 优点:C语言的“创世之作”,由C语言的两位作者亲自撰写,语言精炼,代码典范,是所有C程序员的必读之作,它能让你领略到C语言的简洁、优美和强大。
    • 缺点相对精炼,对零基础初学者可能有些难度,更适合有一定基础后用来“升华”和“查漏补缺”。

进阶必读(深入理解C语言和底层)

  1. 《C陷阱与缺陷》

    • 优点:专门讲解C语言中容易犯错的地方和“坑”,能帮你避开很多雷区,提升代码的健壮性。
  2. 《C专家编程》

    • 优点:带你从更深层次理解C语言,特别是它与底层机器、内存的关系,能让你从“会用”C语言,到“理解”C语言。
  3. 《C和指针》

    • 优点:如果你对指针感到恐惧,这本书就是你的“解药”,它专门、深入地讲解了指针的方方面面,堪称“指针终结者”。

总结与学习建议

特性 谭浩强《C语言程序设计》第三版 现代替代方案(如《C Primer Plus》)
定位 历史性的入门敲门砖 系统严谨的现代入门圣经
代码风格 ,有坏习惯 ,培养良好编程习惯
指针讲解 ,劝退初学者 ,清晰透彻
概念严谨性 一般,有模糊之处 ,非常精确
现代工程实践 ,或至少不与之冲突
推荐指数 ⭐⭐ (仅限特定场景) ⭐⭐⭐⭐⭐ (强烈推荐)

给你的学习建议:

  1. 首选替代方案:直接放弃谭浩强的书,选择 《C Primer Plus》《C程序设计语言》 开始你的C语言之旅。
  2. 动手实践:无论选择哪本书,一定要亲手敲代码、做习题,编程是门手艺,光看是学不会的。
  3. 善用工具:学习使用一个现代的代码编辑器(如 VS Code)和编译器(如 GCC),并学习使用 GDB 进行调试。
  4. 结合在线资源:B站、Coursera、YouTube 等平台上有大量优质的免费C语言视频课程,可以作为书籍学习的补充。

希望这个详细的评价能帮助你做出明智的选择!祝你学习顺利!

-- 展开阅读全文 --
头像
dede 整合 记事狗
« 上一篇 03-23
dede文章本文标签如何添加或修改?
下一篇 » 03-23

相关文章

取消
微信二维码
支付宝二维码

目录[+]