《品悟C》是一本由薛非著作,69.00元出版的2012-10图书,本书定价:502,页数:,特精心从网络上整理的一些读者的读后感,希望对大家能有帮助。
《品悟C》读后感(一):封面故事(二)——关于“分号是C语句不可缺少的一部分”
“C语言规定语句末尾必须有分号。分号是C语句不可缺少的一部分。”
“在C语言中,没有分号的就不是语句。”
这些说法听着耳熟吧?然而这些说法都是错误的。C语言从来就没有规定语句末尾必须有分号。标号语句中就没有任何分号;下面的语句也不是以分号结尾。
if(0)
{
}
以及
if(1)
{
}
else
{
}
然而它们都是完全合法的C语言语句。
while语句同样可能不以“;”结尾。
while(1)
{
/* …… */
}
实际上,在C语言中,只有某些语句必定以“;”结尾,比如表达式语句,其构成规则就是表达式后加上一个“;”。
再比如goto语句、continue语句、break语句以及return语句。它们的构成规则也是在后面加上一个“;”。就一般情况而言,C语言从来没有规定:所有语句都一定以“;”结尾。
《品悟C》读后感(二):封面故事(一)——关于a+=a-=a*a
这是一个被传播了二十多年的错误。
a+=a-=a*a 这个表达式最初出现在1991年出版的谭浩强《C程序设计》第一版中,此后各版的《C程序设计》一直都有关于这个表达式的讲解。国内很多C语言书中同样有关于这个表达式的讲解。
谭浩强《C程序设计》中是这样讲的:
“赋值表达式也可以包括复合的赋值运算符。例如 a+=a-=a*a 也是一个赋值表达式。如果a的初值为12,此赋值表达式的求解步骤如下:
①先进行“a-=a*a”的运算,它相当于a=a-a*a,a的值为12-144=-132。
②再进行“a+=-132”的运算,相当于a=a+(-132),a的值为-132-132=-264。”
很多人,包括不少职业程序员对此都信以为真,殊不知,这个讲解是完全错误的。因为这个表达式本身就是错误的,它违背了C语言的一个最基本的规则:在两个相临的序点之间,同一个数据对象中保存的值最多只可以通过表达式求值改变一次。
违背了这条规则的代码行为是一种Undefined behavior(未定义行为)。
对于未定义行为的代码,编译器可以有任何反应,它可以对此不理不睬,可以给出警告(gcc会对这个表达式提出警告),可以不予编译……,总之编译器的任何反应都无法指责,因为归根结底是程序员违背了C语言的规则,C标准在这种情况下并不要求编译器指出这个表达式的荒谬。
90年代国内普遍流行的编译器是TC,TC并不会指出这个表达式的问题,这使得很多人都以为这个表达式没有问题。于是这个错误就以讹传讹地流传开来。
《品悟C》第11章 问题21"为a+=a-=a*a预拟的悼词"详细地讲解了这种错误。顺便说一下,"为a+=a-=a*a预拟的悼词"这篇博文在网上不难找到。
《品悟C》读后感(三):认清薛非的真实嘴脸。这一切的背后,到底是利益的驱动还是智商的无奈。
认清薛非的真实嘴脸。这一切的背后,到底是利益的驱动还是智商的无奈。详见博客园的文章:
认清薛非的真实嘴脸。这一切的背后,到底是利益的驱动还是智商的无奈。详见博客园的文章:
《品悟C》读后感(四):哈哈哈哈哈哈哈哈哈哈哈哈哈哈
哈哈,貌似作者给自己的书评了五颗星,要不要这么幽默?
哈哈,貌似作者给自己的书评了五颗星,要不要这么幽默?
抱歉,你的评论太短了
抱歉,你的评论太短了
抱歉,你的评论太短了
抱歉,你的评论太短了
抱歉,你的评论太短了
抱歉,你的评论太短了
抱歉,你的评论太短了
抱歉,你的评论太短了
抱歉,你的评论太短了
抱歉,你的评论太短了
抱歉,你的评论太短了
抱歉,你的评论太短了
抱歉,你的评论太短了
抱歉,你的评论太短了
抱歉,你的评论太短了
抱歉,你的评论太短了
抱歉,你的评论太短了
抱歉,你的评论太短了
《品悟C》读后感(五):买回去就后悔了,烂书一本。
当时在书店看到书名,翻看一下目录,觉得很新颖。随便翻了几页,感觉以前的一些困惑都被扫除了。
拿回家后细看,慢慢的就不对了。
发现书本里很多东西都相当教条、死板,感觉就是在扣字眼。虽然不少是正确的,但依然充斥着大量作者的主观臆断。
这本书,几乎是在一个字一个字的扣,比如说某某书中什么说法错误,某某书中说法不科学,某某书用词不严谨,aa不是aa,bb不是bb,cc不能这么读,dd应该这样写,ee不一定是ee...
随即在网上搜索了一下,发现作者原来是个到处喷粪骂人的低素质人。不像其他作者那样,要么有显赫的品牌学历,要么有丰富的教育经验,要么惊人的编程天赋,或者是在著名IT公司有出色的业绩,,,
但作者没有,什么都没有。甚至没有任何简介,没有照片,连从业经历都没有写上。
其实想想也能明白,毕竟没有任何真材实料,仅是多年不停地翻看那些c语言书,把自己打造成一个人为的编译器,对其他作者的书籍指手画脚,哪里不标准,哪里代码烂,哪里不科学... 这就像孔乙己那样研究茴字有几种写法从而沾沾自喜,,甚至是胡言乱语。。
他所能做的,就是扣字眼挑刺,拿出其他作者的书籍,列出其中不规范的写法或说法,一棒子打死,冠名烂书、废纸、垃圾,骂其他作者傻逼...
如果把自己照片公布,个人简介公布,就担心被报收拾,因此只能隐藏在虚拟世界中偷偷发泄。
这样一个在ChinaUnix和博客园里的跳梁小丑,只会四处骂同行的垃圾,只会扣字眼没有真彩实料的废物,人品低劣到极致的渣渣,它的作品有必要看吗??
《品悟C》读后感(六):封面故事(四)——最内涵最遗憾的封面
这张封面是Ager网友为表示对《品悟C》的支持亲自创作的。这是《品悟C》最为自豪一件事。世界上的书很多,但有热心网友主动为之创作封面的,应该是凤毛麟角。
这张封面用的是“O'Reilly”风格,惟妙惟肖,非常O'Reilly。表面上看起来非常朴实简洁,但无华的外表却蕴含这丰富内涵。看似普普通通的化学结构图,背后深藏着一个已经有些年头了的令人悲伤的故事。对于多数人来说,这一个谜。Ager网友对谜底给出的提示是“绝对血腥恐怖!”“结构图中最大的几个球,是Fe离子”。当你在谜底中发现“清华”、“中毒”等关键字时,相信任何人都对对此谜的独具匠心而拍案叫绝。
读懂了这张图,回首封面顶部的文字就会体悟到“Detoxification Against BASI-C”绝对是画龙点睛的一笔,不仅完整地道出了《品悟C》这本书的全部内容,还揭示了“主流”劣C“教材”的本质及历史根源。
可惜的是,这张封面没能赶得上《品悟C》的出版节奏。这个遗憾看来只能在下一版弥补了。
《品悟C》读后感(七):垃圾书,谁买谁上当受骗
几十块钱也是血汗钱,不是大风刮来的。不要被骗子骗了。
哎。。。垃圾中的战斗机!!!!
哎。。。垃圾中的战斗机!!!!
哎。。。垃圾中的战斗机!!!!
哎。。。垃圾中的战斗机!!!!
哎。。。垃圾中的战斗机!!!!
哎。。。垃圾中的战斗机!!!!
哎。。。垃圾中的战斗机!!!!
哎。。。垃圾中的战斗机!!!!
哎。。。垃圾中的战斗机!!!!
哎。。。垃圾中的战斗机!!!!
哎。。。垃圾中的战斗机!!!!
哎。。。垃圾中的战斗机!!!!
珍惜金钱,远离垃圾书。
《品悟C》读后感(八):2014年计算机伪劣图书《品悟C》伪劣作者打假第一案!踢爆伪C大师garbageMan(薛非)的真实嘴脸。这一切的背后,到底是利益的驱动还是智商的无奈!
2014年计算机图书伪劣作者打假第一案!踢爆伪C大师garbageMan(薛非)的真实嘴脸。这一切的背后,到底是利益的驱动还是智商的无奈!
一段技术引子:
针对伪C大师garbageMan(薛非)的这篇文章的驳斥如下:
这个问题的解法本身谈不上什么算法,可以说并没有什么特别值得讨论的地方。我回过头浏览下博主的代码,博主的代码风格有多烂暂且放在一边不说了(像什么return !0也不知道是脑子到底进了多少水),由于博主的代码实在过于惨不忍睹,要看他的代码实在是一种痛苦,也还真不是人干的活。
由于博主本身的代码写的太烂,加上不具有描述算法的能力,我估计无耐心的人肯定不会像我这么无聊地去审查他的意图。所以我在尝试理解其方法后试图复述其方法的思想如下,具体见这里。——hoodlum1980
真正的正文:
[这里有一张很惊人的图,因为这里贴不上,网友可直接访问本文最底部的那个原贴网址,就可看到那张惊人的图了]
此人最早混CSDN,被版主封号后又转战ChinaUnix,虽然还没封号,但已很少发言,因为其在CU上已引起越来越多的反感,被称为CU的搅屎棍,眼看在CU待不下去了,现又把主战场转移到根本不以探讨C技术为主的博客园(博客园是.NET为主,之所以放这里,两个原因:一,其他地方待不下去了,二,这里少有人搞C,被技术爆头的风险小得多,便于其信口开河)。
这根挑屎牙签并不是他写的第一本书(实为废纸),他之前还写过别的书,但每次都销量惨淡,无人问津,为了避免受前作销量惨淡的影响,他不得不每次出书都换一个笔名。但问题显然不是出在名字上。
这本挑屎牙签放味一年半来的情况是,纸书没人买,电子版没人下,他请人看书,都是靠送的,这点快递员最清楚。
有人可能会问,你为什么不从技术上反驳他,我要说的是,当你面对一个从粪池里爬上来的人,你却问他今早是否刷牙了,这很不合时宜。如果有人确实对他技术上的“瑕疵”感兴趣,可以直接阅读下面这篇博文后的评论,里面有ChinaUnix的C程序员们对他的技术上的爆头和点评:
在博客园待时间长的博友,都知道此人被称为博客园第一小丑,并大多远远躲开,因此对此人了解不多。这道理就如同我们绝大多数人都知道有粪坑这么个东西,但几乎所有人都不清楚农村的粪坑到底有多深一样,因为没人愿意走近去研究。
一个IT技术人员,你技术不行、知识面窄、眼界底,这不叫事儿,但如果你好为人师,这就叫事儿,如果你不仅好为人师,而且明明技术很烂,却还整日不可一世,天天装模作样地挥斥这个、评析那个,天天用狗屁不通的理论极尽疯狂歇斯底里地去肆意诋毁和侮辱他人和他人的作品,那你就是个不折不扣的卑鄙下流的无耻之徒!
大家可以看看他发的这段原话:
“首先声明,我是由于非常偶然的机会获得《C语言入门很简单》这本书的,绝对不是买的。买这种书实在丢不起那人。
去年这书刚出版时,在CU论坛举行试读推广,我当时随口说了几句(没说一句好话),没想到最后居然获送了一本。
对于我来说,这书连洗脚水都不如,根本不可能去读它。用它来擦屁股纸又嫌太硬,更怕这本劣书的油墨污染自己的屁股。所以我一直想不出应该如何处置这本书。想来想去,这书的唯一用途是拎出来当反面教材,给容易上当受骗的初学者们提个醒,顺便给大家讲点劣书是如何炮制的,都有哪些特征,也算是物尽其用了。”
对于上面这段话所折射出的此人的品行和心理,我想无需多说什么,每个人都会有自己的评价。
此人有个传统,在哪家社出书,出版之后立马反咬这家社。之前他那本垃圾书《狂人C》是在人邮出的,出版后反咬人邮的好几本书,这次在清华出了《品悟C》后又立马反咬清华的书,真的很难相信天底下有卑劣到如此地步的人。其卑鄙低劣的程度,已经超出了言语所能表达的范畴。无法解释,不能形容。
此人面目丑陋(他自己说的),内心阴暗卑劣,常年生活在阴沟中,在任何场合都不敢以真面目示人,跟任何出版社签合同时都要求出版社必须保证在任何情况下都绝对不能透露他的任何信息。他的书上也永远都没有任何作者技术和背景的介绍,给人的感觉是这个人和这本书都是凭空出现的,一个地道的三无产品。因此,出版社之间对他的情况完全不了解。他像一个孤点,与周围的一切没有关系。而他生存的唯一目的就是躲在阴暗的角落里向周围他看不顺眼的一切放冷枪。由于他每出版一本书就换一个笔名,在同一个论坛发言也使用不下十数个马甲(如博客园的Lord Gilgamesh、acutus等等等等、豆瓣的badman、朱明祖等等等等),所以想了解他的信息有难度。但经过调查,还是有一些收获,因此得知,博客园的键盘农夫、KBTiller也是此人,《狂人C》就是此人的又一部垃圾。
于是紧接着一个让人惊得目瞪口呆的景观呈现了出来:此人竟然把他那本卖了四年连首印都没卖完的烂书《狂人C》和众多C的世界级名著列在一起!你到底还要脸不要脸?!人家哪本书不是卖了数万数十万册?!和这些书比?你也配?!你还自己对自己鞠躬致歉,你还能再恶心再下作些不?!
看看此人自己所写的让人震惊到作呕的原话:
“不怕不识货,就怕货比货。不过写到这里,我突然感到一阵疚惭,把《The C Programming Language》、《C Programming: A Modern Approach 》、《Pointers on C》、《狂人C:程序员入门必备》、《从问题到程序:程序设计与C语言引论》这几本书和《C语言入门很简单》写在同一篇博文里实在是一种亵渎。我真的感觉对不住前面那些书的作者们。在此我向Brian W. Kernighan、Dennis M. Ritchie、K. N. King、Kenneth A.Reek、键盘农夫、裘宗燕等几位作者鞠躬致歉。对不起,万般无奈,势不得已,实在是箭在弦上,想收都收不住了。”
第一次见到像你这么臭不要脸的人!全中国都找不出第二个!
是的,这不是一篇技术文章,把这样的文章发到首页可能并不适宜,但如果不把这些话说出来让博客园的朋友们看到,任由这个一贯戴着伪善的脸孔行卑劣之事的小人肆意妄行,污染周遭,我认为是对博客园的不负责任。这个毒瘤,已经被CSDN封,被ChinaUnix赶,现在他正要载种在博客园里。这样的毒瘤不铲除,只能任由他将一切甩上粪汤。
要让所有人知道你的真实嘴脸,要撕下你这张伪善下的卑鄙脸孔。骂你的话,你不删(因为以你的智商所能产生的心思是这正可显出对方的水平);攻击你技术的话,你不删(因为你最拿手的就是死不认账和胡搅蛮缠);但揭露你真实嘴脸的评论你却马不停蹄地删除(因为相貌丑陋的人面对镜子时是最难受的。你不能面对你是一个技术白痴与卑鄙小人的事实。你害怕让别人知道。)
鲁迅有篇文章,叫“痛打落水狗”,对卑劣之人,一旦让其起性,只会更加疯狂,唯有痛打、打疼、打怕,或许才能让其明白一个简单的道理——一个人的生存,是由于他的正直,而卑劣之人暂时能够存在,只是因为其侥幸逃脱了灾祸。
原贴地址:
《品悟C》读后感(九):封面故事(三)——关于“所有float型数据都先转换为double型”
“+、-、*、运算的两个数中有一个数为float或double型,结果是double型,因为所有float型数据都先转换为double型,然后进行计算。”
这样的说法在国内的C语言书中很常见,然而很少有人知道这种说法其实是错误的。
这个说法最早见于K&R的第一版。在那个时代,由于硬件条件的限制,为了提高效率,最初的C语言中确实有过这个规定。
然而时代变了,这个说法其实早就过时了。早在1989年,C89标准就废弃了这条规则。也就是说,即使这条规则曾经成立,那也是二十多年以前的事情了。
C89中对float类型数据的运算是这样规定的:如果是float与整数类型的数据进行算术运算,那么整数类型的数据被隐式地转换为float类型的数据,然后进行运算。举个例子,对于表达式:
3 + 4.F
由于4.F的类型为float,所以式中int类型的3将被转换为(float)3。这个表达式表达的计算要求其实是:
(float)3 + 4.F
而不是:
(double)3+(double)4.F
C99中也是如此,只不过在C99中整数类型的种类更多些而已。