首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

花了一天的时间,读完了两本国产C/C++书(《C指针编程之道》、《小弟我的第一本C++书》),随即写下印象与评价

2013-07-09 
花了一天的时间,读完了两本国产C/C++书(《C指针编程之道》、《我的第一本C++书》),随即写下印象与评价花了一天

花了一天的时间,读完了两本国产C/C++书(《C指针编程之道》、《我的第一本C++书》),随即写下印象与评价
花了一天的时间,读完了两本国产C/C++书(《C指针编程之道》、《我的第一本C++书》),随即写下印象与评价

用“指针”名头包装着的N本大学计算机教材合辑

——《C指针编程之道》(孔浩 张华杰 陈猛 人民邮电出版社)印象与评价

花了一个下午,还算是比较仔细地读完了本书,随即写下大概的印象与不全面的评价如下。如有错谬之处,期待各位大虾指正,免得误人子弟。

光看书名,实在很震慑人心!指针!道!这是一本关于C的灵魂的灵魂的书呀!接着看封面,一个ASCII Art的墨镜男Geek头像,范儿黑客帝国呀!太酷了!再看封底,“爱数组,爱结构体。爱琢磨算法,爱玩弄内存,更爱掰着手指数字节。爱自己冥思苦想,也爱与众生分享。……”—— 绝对是Geek + Hacker + Open Source呀!真是心有戚戚焉!

好了,最后咱们翻开书页看内容吧……

最初的印象,全书编排紧凑却又有些狭促:扉页前没有空白装帧页;序、跋、参考文献、附录、索引、后记、编后等辅文一概都没有;正文第394页就紧粘着封底;每章首页隐去了页眉与页脚但无留白,全书唯一的留白处仅仅是在各章的尾页。

其次,全书的代码块部分,皆使用g字不打圈&字不开口的Sans字体(或类似字体)呈现,有别于最常见的Courier/New字体,看着也还是挺养眼的。不过非代码块(行文/解说)中的代码字体却是非等宽字体,跟谭老教授畅销书一类的一样,算是粗陋了。

接下来,翻翻目录,首先发现有《4.2 不能不说的秘密——main函数的秘密》,以为是重大亮点,立即翻至第69页拜读。结果令我跌碎眼镜。第69页最后一行开始解说如下:

“C语言规定,main函数定义形式为:
void main(……){……}”

—— 这是最让我反感的C编程观念之一,但这里作者却断言是“C语言规定”。在《4.2.2野百合也有春天》中,作者用了不到一页纸的篇幅,非常粗略和狭隘地解说了main函数的参数与操作系统的关系。整个4.2让我觉得,这一节写了还不如不写。

要说本书作者(们)抱定“void main(……)”的“规定”,那也不是。前五章的代码示例还全都是用“int main(void)”的。(而以后各章节却是错误地使用void main(……)。)

再翻到第56页,在那里却又是这样说的:

“在最新的C99标准中,只有两种定义方式是正确的:
int main(void)
int main(int argc, char *argv[])”

由此看来,整本书所体现的关于C的标准或“规定”,没有统一性。这可能跟整本书分由三位作者撰写以及编辑不在乎ANSI/ISO标准有关吧。莫非……本书真是在言说一个“绝圣弃‘标’,民利百倍;绝仁弃‘准’,民复孝慈”之“道”?

进一步仔细阅读全书各章……

读完前4章,感觉是谭老教授畅销的C教材中“指针”部分的一个“详化版”。

读到第5章,感觉跟国内大学传统的《数据结构(用C描述)》教材线索与风格基本一致,并无太多新意。本章可以作为上述教材的“超缩略版”。

而第6章,也是谭老教授C教材中“I/O”部分的一个“详化版”。

第7、8两章,跟第5章一样,同属大学《数据结构(用C描述)》(包含了算法的)教材的“缩略版”。

第9章,是大学《计算机组成原理》教材中“汇编语言”部分的“蜻蜓点水版”。

读到第10章《Linux C 编程技术简介》一开始,才觉得略有新意。见到GNU的gdb登场,算是有一点点Hacker灵光乍现,但毕竟也只是“现”一簇昙花而已。进入本章的第2、3节,就是大学《操作系统》教材的一个“超缩略版”。而本章的第4节,则是大学《计算机网络原理》教材的一个“Baby级入门版”。

第11章,也属于大学《操作系统》教材的一个“超缩略版”。

第12、13章,类似于市面上的那种号称“精彩应用”、“开发实战(例)”等等之类的教程。

纵观全书,分明就是国内大学计算机专业里N门传统基础课程教材的杂凑合辑,“道”(盗)了谭老教授、严老教授、汤老教授等等的教学思路之一贯,所谓“一贯道”。

所以,我认为,在本书《前言》部分,编者宣称:

“本书适合以下读者阅读:
C语言开发初\中级爱好者
C语言开发专业人员
高等院校的学生”

—— 其中所列3类人当中,有2.5类纯属滥竽充数。本书对于当代C语言中级爱好者来说,已经完全不够用或早已过时(比如说,里面大量的实例是基于Turbo C和MS DOS的),更遑论对于“C语言开发专业人员”。而高等院校的学生则根本不需要本书,因为只要他们通过了专业科目的考试,所有的教材,以及基本上作为这些教材缩略版的本书,就真的可以统统扔掉了,本书的价值甚至可能还不如他们的课堂笔记和“考前预测题”试卷。

严格地说,本书的读者群应该这样定位:对C有比较强烈兴趣但却没有接受过系统的计算机专业教育和训练的人。

在本书中,还存在一些专业性错谬。比如:

(i)在第9页的例子(1)中,对于“int num[70];”这个“定义”,解说是“该数组可以存放71个int类型的数据”。这是一个典型的,有如著名的《C陷阱与缺陷》中所提到的“差一错误(Off-by-One Error)”。但是,本书中的这个错误又不是那么的“典型” —— “差一错误”应该是“很隐蔽”或“较难觉察”的,但是这里的这个错误,却也太明目张胆了呀!

(ii)从第13页开始讲解字符串,下面始终把字符串末尾的结束符写成“\o(小写拉丁字母O)” —— 这让人感觉好像有那么一点在数学里空集符号 ?与希腊字母φ、Φ、Ψ、ψ混淆乱用的意思 —— 这之所以是一个比较严重的专业性错误,是因为在C当中,“\o”有着完全独立和迥异的意义。

(iii)在第234页,把gcc命令参数-o后面所要标识的文件,以及a.out这类文件,都明确地称为“目标文件”。这又是一个严重的专业性错误。对于那些本来就对编译、链接等概念含混不清的学生来说,这种误导简直就是不能原谅的。



除此之外,还有一些“笔误”。比如在第114页,有一处写成“文本(test)文件”。

当然,本书还是有一些值得称道的优点:

(i)穿插在全书中的“知识提示”楷体字部分,不失为亮点之一。

(ii)本书对于代码实例的讲解很细致,不大而化之,尤其是在前5章里面;且注重代码中的注释。

(iii)全书有大量的代码实例,均尚未发现其中有语法错误和逻辑错误 —— 这应该跟有多达23位专业人员“参与了资料整理和代码编写”有关。

最后,还是向本书作者孔浩、张华杰、陈猛三位先生,以及那个多达23人的”资料整理和代码编写”团队,致以敬意和感谢!


[解决办法]
    这两本书被很多人称为经典
[解决办法]
可以把书评,发到 amazon,dangdang,360buy 等 卖书的地方、


[解决办法]
汗。。。。怎么阅读那么快的,楼主能吸引多少?我的阅读是慢慢嚼,不知我的阅读方式是否有错呢
[解决办法]

引用:
花了一天的时间,读完了两本国产C/C++书(《C指针编程之道》、《我的第一本C++书》),随即写下印象与评价

用“指针”名头包装着的N本大学计算机教材合辑

——《C指针编程之道》(孔浩 张华杰 陈猛 人民邮电出版社)印象与评价

花了一个下午,还算是比较仔细地读完了本书,随即写下大概的印象与不全面的评价如下。
……
上午一本,下午一本?这速度,我看小说估计也赶不上。。。
[解决办法]
引用:
引用:
花了一天的时间,读完了两本国产C/C++书(《C指针编程之道》、《我的第一本C++书》),随即写下印象与评价

用“指针”名头包装着的N本大学计算机教材合辑

——《C指针编程之道》(孔浩 张华杰 陈猛 人民邮电出版社)印象与评价

花了一个下午,还算是比较仔细地读完了本书,随即写下大概的印象与不全面的评价如下。
……
上午一本,下午一本?这速度,我看小说……

楼主明显是有功底的人,以一个书评者的态度来看这两本书,而不是学习者
[解决办法]
国内的大部分出书的作者对待知识不够严谨啊,所以现在我一般不买国内某某著的,而是买翻译老外的书,实话实话,老外在学术问题上要严谨得多
[解决办法]
对学习编程者的忠告:
眼过千遍不如手过一遍!
书看千行不如手敲一行!
手敲千行不如单步一行!
单步源代码千行不如单步对应汇编一行!

VC调试(TC或BC用TD调试)时按Alt+8、Alt+6和Alt+5,打开汇编窗口、内存窗口和寄存器窗口看每句C对应的汇编、单步执行并观察相应内存和寄存器变化,这样过一遍不就啥都明白了吗。
对VC来说,所谓‘调试时’就是编译连接通过以后,按F10或F11键单步执行一步以后的时候,或者在某行按F9设了断点后按F5执行停在该断点处的时候。
(Linux或Unix下可以在用GDB调试时,看每句C对应的汇编并单步执行观察相应内存和寄存器变化。)
想要从本质上理解C指针,必须学习汇编以及C和汇编的对应关系。
从汇编的角度理解和学习C语言的指针,原本看似复杂的东西就会变得非常简单!
指针即地址。“地址又是啥?”“只能从汇编语言和计算机组成原理的角度去解释了。”

提醒:
“学习用汇编语言写程序”

“VC调试(TC或BC用TD调试)时按Alt+8、Alt+6和Alt+5,打开汇编窗口、内存窗口和寄存器窗口看每句C对应的汇编、单步执行并观察相应内存和寄存器变化,这样过一遍不就啥都明白了吗。


(Linux或Unix下可以在用GDB调试时,看每句C对应的汇编并单步执行观察相应内存和寄存器变化。)
想要从本质上理解C指针,必须学习C和汇编的对应关系。”
不是一回事!

不要迷信书、考题、老师、回帖;
要迷信CPU、编译器、调试器、运行结果。
并请结合“盲人摸太阳”和“驾船出海时一定只带一个指南针。”加以理解。
任何理论、权威、传说、真理、标准、解释、想象、知识……都比不上摆在眼前的事实!

[解决办法]

引用:
    这两本书被很多人称为经典



http://bbs.chinaunix.net/thread-3692320-1-1.html

看完这个帖子再回来说话。
[解决办法]
  又是这种垃圾贴,不必看了!
[解决办法]
引用:
国内的大部分出书的作者对待知识不够严谨啊,所以现在我一般不买国内某某著的,而是买翻译老外的书,实话实话,老外在学术问题上要严谨得多


这话不同意,老外也不乏滥竽充数之辈。何况还要受限于一些刚出校门靠翻译软件帮助的译者。。。
某些译者的水平连初哥都算不上。
[解决办法]
引用:
引用:

国内的大部分出书的作者对待知识不够严谨啊,所以现在我一般不买国内某某著的,而是买翻译老外的书,实话实话,老外在学术问题上要严谨得多


这话不同意,老外也不乏滥竽充数之辈。何况还要受限于一些刚出校门靠翻译软件帮助的译者。。。
某些译者的水平连初哥都算不上。


国外的确也有不好的书,肯定的.但是能流传到中国来的大多都是好的.
[解决办法]
引用:
引用:
上午一本,下午一本?这速度,我看小说估计也赶不上。。。


在高三毕业班的时候,学生几乎每天都要进行一到两门的高考科目模拟测试。

而一位任课老师,一般会带两到三个班,平均一个班有50个学生的话,老师在当天模拟考试结束收上答卷之后、次日或再次日上课讲解试卷之前,就要批改大约100~150份考卷。

100~150份考卷,每份考卷平均有约12页篇幅,那么,……

越来越觉像老赵了
[解决办法]
我赞同楼主这种写书评的做法,可以让没有看过这两本书的人,有个大致的了解。

国内太多书滥竽充数了,写得快、卖得快、就是从中获取知识的速度慢。国外的情况稍好一些,但也有很多烂书。所以不管在什么地方,都要读经典著作,乌七八糟的书就不要乱读了,会走火入魔的。

当然在某方面有了一定的功底之后,像楼主这样去写写书评还是不错的。
[解决办法]
引用:
引用:
花了一天的时间,读完了两本国产C/C++书(《C指针编程之道》、《我的第一本C++书》),随即写下印象与评价

用“指针”名头包装着的N本大学计算机教材合辑

——《C指针编程之道》(孔浩 张华杰 陈猛 人民邮电出版社)印象与评价

花了一个下午,还算是比较仔细地读完了本书,随即写下大概的印象与不全面的评价如下。
……
上午一本,下午一本?这速度,我看小说……


这个应该没有问题滴,如果他对C++已经很熟练了,做到这样的情况是可以的。俺第一次看C++ Primer和Inside C++ Object Model一共花了一年的时间,后来看速度明显快了很多。不过我读书相对其他同学来说,的确有点偏慢。
[解决办法]
请楼主推荐一两本C和C++的好书,就是可以让人去细细品味和琢磨的书,我这个新手特别需要这样的书,谢谢楼主。顶楼主。
[解决办法]
引用:
对学习编程者的忠告:


眼过千遍不如手过一遍!
书看千行不如手敲一行!
手敲千行不如单步一行!
单步源代码千行不如单步对应汇编一行!

VC调试(TC或BC用TD调试)时按Alt+8、Alt+6和Alt+5,打开汇编窗口、内存窗口和寄存器窗口看每句C对应的汇编、单步执行并观察相应内存和寄存器变化,这样过一遍不就啥都明白了吗。
对VC来说,所谓‘调试时’就是编译连接通过以后,按F10或……


说得好!!这才是真理!!
[解决办法]
好帖啊!
對出書人和讀書人都是很有好處滴!
[解决办法]
顶,最讨厌就是前后矛盾和误人子弟,很坑爹!
[解决办法]
神速~
[解决办法]
引用:
一天读2本。。要么你是天才,要么你是XX


楼主明显是有功底的人,是以一个书评者的态度读书,而不是学习者

热点排行