谭浩强《C语言程序设计》一书有何缺点?

谭浩强《C语言程序设计》一书有何缺点?,第1张

书上面ANSI只给了两种方式:

intmain(void){/*...*/}和intmain(intargc,char*argv[]){/*...*/}

其它的形式都是不标准的,属未定义行为。

老谭虽然水平不高,但是在中国计算机教育的早期他的确作出了不少贡献。因为那时全国上下懂计算机的人很少、总体水平极低,所以以老谭之碌碌,仍能对大伙有所帮助。

但是人贵有自知之明:你的时代已经过去了,你就应该知趣地退在一边看年轻人的表演。这方面王选先生就很值得学习。

王先生自已说过:在90年代初的时候他就深切地体会到自己对新技术的学习和掌握已经赶不上身边的年轻人了,所以他自觉退出科研一线,让有能力和活力的年轻学者挑大梁。

反观谭先生,不但隔个一年半载的就要把他那泛黄的书稿拿出来掸掸灰、改几个字,然后找家出版社出版。

而且,他老先生还成立了一个所谓“谭浩强工作室”,组织一伙写手写了一批同样的碌碌之作——其中某些书涉及的领域,相信谭先生自己恐怕知之甚少。

以王选先生之学识和名望,尚知其力有不逮。老谭,你为什么不惭愧?

我只想说些良心话。谭浩强主编的《C程序设计》确实有些小错误,还有些程序运行结果甚至与书都不符,但是不知道谁编出的《谭浩强<C程序设计>错误之不完全汇集》(以下简称“汇集”)简直也太诋毁这本书了。

首先,“汇集”总在最小的、甚至小到根本没人去纠结也完全无所谓的地方上抠字眼,“汇集”的作者总认为不应该说“系统”而应该说“编译器”,而且始终在批评这句话“系统本身不自带输入输出语句”,还举例反例说老谭自己砸自己的脚,我就想问一句,这句话哪儿错了?系统难道自带输入输出语句?能输入和输出不是因为预处理了头文件才能用这些命令的吗?再比方说那个“strlwr”函数,书里已经明确说了只能给字符串的大小写进行转换,而且stdio.h里是可以得到这个函数的,那么“汇集”里扯了那么一大堆,和老谭说的有什么区别?【就是仗着《C程序设计》这本书的不完美之处而没事找事!】

其次,“汇集”里对于一些程序的评价,很多地方说得反倒不对了。比如“汇集”里说“%o格式输出c是错误的”、“H o w \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 不能因为新手无知就这样糊弄他们吧”等等,%o不就是八进制而已吗?怎么就不能输出字符?只不过输出了ASCII码的八进制数字而已,弄得好像编译器压根儿不识别似的;一个数组,字符没排满后面本来就全补上了\0,作者说的“糊弄”又是什么意思?怎么不给个解释?最让人无语的是这样一句话“a+=1和a=a+1绝对是不一样,老谭怎么能理解,算了 ”,不好意思,如果你说这两个不一样,那我也不理解了,请你解释一下,干嘛就搪塞一句“算了”?

最后,“汇集”竟然写了将近530页,找到了无数个错误,甚至拿C语言标准的英语原文来做对比,然而前20页就有将近18页说的纯属废话,让人感觉就是在装面子,那么这位作者对于C语言本身的掌握程度又有多少?数据结构、算法和计算机原理又懂多少?我想不用再说了,连同义词都要纠正的人,怎么可能写出好的错误汇集?

《C程序设计》确实有很多不完美之处,也确实不适合作为第一本C语言教程类参考书,但是《谭浩强<C程序设计>错误之不完全汇集》真的更没必要看,希望“汇集”作者能给出解释,不要把你所谓的“有病吧”“咋想的”“算了”作为一个问题的解释,这样的搪塞我们不接受。

原创。但随意转发。


欢迎分享,转载请注明来源:内存溢出

原文地址: https://www.outofmemory.cn/yw/11293020.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-15
下一篇 2023-05-15

发表评论

登录后才能评论

评论列表(0条)

保存