8:读了老谭的书,总觉得谭浩强是一个很少自己编写程序的老学究,四平八稳、中规中矩。他的书里面没有经验建议,也没有自己独到的见解,只有完全正确的规范。合适当工具书(但说起C语言工具书又有哪本书敢和K&R的《The C Programming Language 》争锋)。而国外的很多C语言书是由C语言创始者或拥有几十年经验的质深程序员编写的。这些书里更重要的是融入了作者多年的编程经验。使用了多年的C语言后,随手翻翻这些书,时常会对作者独到见解拍案叫绝、深受启发。但是看谭浩强的书,总是觉得乏味枯燥——典型的中国教材。
举一两个简单的例子:
1.运算符优先级问题
谭浩强的书只是在附录中将ANSI C里有关运算符优先级的规范抄了一遍,区区两页。当然这样最稳妥,最不会出错。
在《Pointers On C》中作者不仅详细解释了运算优先级,还分析了C语言规范中定义不清的地方,也就是告诉读者C语言中哪里存在陷阱。此外还对在各种编译器中的运算结果进行比较。可以看出作者颇费了些心思。
而在另一本书——《实用C语言编程》/《Practical C rogramming》中作者建议道:你只需要记住乘除的优先级高于加减,其它地方一律加上括号。我经历过几次对着运算符优先级表帮别人查软件BUG以后,就把这句话作为编程原则发给每个新来的人。
19:书的内容有些老,一些内容过于专门化(但又没有讲出关键),另一些内容不是很准确。一个例子是,“Turbo C 和目前使用的多数 C 版本对这两种方法都允许使用,两种方法等价,ANSI 新标准推荐前一种方法,……”(PP. 146)两种方法并不是完全等价的:采用老方式时,编译器可能已经关闭了类型检查。
对 C++ 的介绍没有必要,因为仅靠两章的内容根本没法说清;学习 C++ 最好避免 C 的技巧。我的观点是,C++ 与 C 应尽可能的分开。
最后一章指出的一些错误仍是属于 K&R C 风格的;按照 16.2 节指出的步骤,一个程序似乎应该先写到纸上。难道 Unix 的源代码也是先写到纸上再录入的吗?
20:建议不要看该书,尤其不要做后面的习题,特别不要购买配套练习题。
这本书不是学习的途径,会指引你误入歧途。
真的,不是骗你。
21:我对看这本书的读者建议是:
该书比较适合对C有点掌握的人用来做[排除错误]的练习,比如:可以通过对书中美妙“术语”的斟酌,来加深自己对计算机科学术语的理解;可以通过修改书中已书写“优良”的代码来改善自己书写代码的风格和加深对程序可读性的理解。如此等等。当然还可以有其他很多的提高,只要你肯对书中的内容大力斟酌喽。(特别注意:若你是菜鸟,就不要轻易尝试[排除错误]了。)
最后,推荐初学C和程序设计的朋友去北大裘宗燕老师的网站上看看,肯定不会让你失望的!网址如下: http://www.math.pku.edu.cn/teachers/qiuzy/
22:跟你说我们班主任(教C语言的)的编码风格和谭的很象。。超浓缩豆腐块。我看在眼里笑在心理。哈哈。更可笑的是已经培养出好几个班上的超浓缩豆腐块。。哈哈
23:谭浩强?老朽而已,原来在清华念过书,因搞共青团工作比较卖力而留校。其实大家都清楚:这类人在大学里是很被人看不起的
24:此书“几年来发行量达270万册,创同类书发行量的全国纪录。”呜呼!那是在全国人民见不到好书的情况下出现的,是全国人民的悲哀!另外,有些教师懒惰,10年间没有换过讲稿,使得这种垃圾教材得以苟延残喘。
25:这本书里的程序代码没有用K&R格式,代码被紧贴着写在左花括号{ 的右边。Deitel父子的那本笔者本要好得多。
22:
C程序设计教程
C How To Program Second Edition
26:C++是要介绍一种面向对象的编程思想,写C++的书不能只介绍语法。谭浩强这种编排方式肯定让初学者误入歧途。所以不要再说他适合出学者。外国的书也不是很难呀,C++primer就很适合初学者。“不要盲目追求什么STROUSTRUP的C++程序设计,不要盲目追求一本上千页的C++PRIMER”连这些东西你都不看,你还写什么程序?“你只要能把老谭教材上每一章后面的习题都自己做出来,你的水平就不会低了”,简直就是一个笑话,我问你老谭他进行过软件开发吗?你以为他的水平有多高呀。从这就话看的出来你根本就不懂软件,语言就是程序设计的一个工具,在软件设计中占的比重很小很小,你看完了C++ Primer,thinking in C++,the C++ programmer language等国外的经典的书只能说你懂了C++的语法,离编程还差的远了,什么算法、操作系统、协议、软件工程等你都要了解。如果真像你说的作完老谭的练习水平就不低了,那这本书真的就是世界图书史上的一个精品。