免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: pmerofc
打印 上一主题 下一主题

[C] “无知不可怕,可怕的是夜郎自大”——方兆国的奇葩贴汇总 [复制链接]

论坛徽章:
0
31 [报告]
发表于 2013-01-19 17:09 |只看该作者
本帖最后由 timothyqiu 于 2013-01-19 17:09 编辑
pmerofc 发表于 2013-01-19 12:15

本帖最后由 pmerofc 于 2013-01-19 13:55 编辑


关于a+=a-=a*a
http://bbs.chinaunix.net/thread-3777454-7-1.html 62楼
我感觉这个表达式化简一下就是a=2*a-a*a也就是a=a*(2-a)也就是a*=(2-a)


事实上,我们看原文:

看了你在这个帖子里留的网址,我才看明白你的意思,你是想说这个表达式是有问题的吗?

我感觉这个表达式化简一下就是a=2*a-a*a也就是a=a*(2-a)也就是a*=(2-a)

我是手推的,因为没带电脑,是用手机发的帖子,因此没有验证过结果
故不对正确性负责,好奇的朋友可以自己验证一下


断章取义害死人啊,既然作者都说了这只是自己的一种推测、很可能是错的了,看不出哪里「奇葩」了……

论坛徽章:
0
32 [报告]
发表于 2013-01-19 17:13 |只看该作者
pmerofc 发表于 2013-01-19 12:16

http://bbs.chinaunix.net/thread-3777454-7-1.html 65楼
以下是解释

a+=a-=a*a

从右向左 a-=a*a  此时运算前的a为a的初值即 a=a-a*a 运算后即为a=a-a*a

继续  a+=a  ,此时运算前的a为 a-=a*a ,即a+=(a-a*a) 运算后即为a=(a-a*a)+(a-a*a)

对于a=5

第一步 a=5-5*5=-20
第二步 a+=第一步a a=(-20)+(-20)=-40


事实上,可以回原帖看一下,作者这里的「解释」是针对自己 64 楼的实际运行截图来解释自己为什么编译后会得出 -40 的结果。合情合理,不知奇葩在何处。

论坛徽章:
1
摩羯座
日期:2013-12-19 10:04:07
33 [报告]
发表于 2013-01-19 17:15 |只看该作者
回复 31# timothyqiu

对一个未定义行为[C99里面这个是未定义行为] 不管是手推 还是脚推 还是机器推 都是徒劳 都是错

   

论坛徽章:
0
34 [报告]
发表于 2013-01-19 17:32 |只看该作者
回复 33# lin5161678

不对。

即便在标准中是未定义行为,但具体到某个版本编译器实现时是一定的行为。(未定义行为是类似纯虚函数的存在,基类不管它的具体行为,留由派生类实现。)

作为对于自己所使用的这个编译器上行为的解释,是合情合理的。

(诶,说得再直白一点:原作者解释的是为什么 a+=a-=a*a「产生了」-40 这个结果,而不是为什么 a+=a-=a*a「一定会产生」-40 这个结果)

论坛徽章:
0
35 [报告]
发表于 2013-01-19 17:35 |只看该作者
诶~pm 的断章取义功力真不一般,我都懒得找原文来驳了。

论坛徽章:
5
狮子座
日期:2013-08-20 10:12:24午马
日期:2013-11-23 18:04:102015年辞旧岁徽章
日期:2015-03-03 16:54:152015亚冠之德黑兰石油
日期:2015-06-29 18:11:1115-16赛季CBA联赛之新疆
日期:2024-02-21 10:00:53
36 [报告]
发表于 2013-01-19 17:40 |只看该作者
回复 34# timothyqiu


    所以如果你看到一个基类的doSomething虚函数,那么你就可以说他一定是“脱了衣服然后去理发店吃饭”么?这是啥道理?就算真的有人脱了衣服去理发店吃饭,你也不能说“因为调用了doSomething,所以脱了衣服去理发店吃饭”啊,要解释doSomething,直接说“这是一个虚函数”不就完了?扯具体的行为不是奇葩是什么?至少也是个答非所谓= =

论坛徽章:
0
37 [报告]
发表于 2013-01-19 17:46 |只看该作者
本帖最后由 timothyqiu 于 2013-01-19 17:56 编辑

回复 36# starwing83

诶,原帖就在 65 楼,评论之前看一眼原帖很难吗? http://bbs.chinaunix.net/thread-3777454-7-1.html

如果大师你看了 65 楼,你就会发现 65 楼是对 64 楼那张截图的解释。

也就是说,原作者说的是「派生类的 doSomething 函数为什么执行的是 脱了衣服然后去理发店吃饭」,但你们一帮人都偏要说原作者是在说基类的 doSomething 怎么怎么……(MD,你们难道都是在炫耀只有自己知道纯虚函数这个概念吗?)

论坛徽章:
1
摩羯座
日期:2013-12-19 10:04:07
38 [报告]
发表于 2013-01-19 17:56 |只看该作者
回复 34# timothyqiu

你是不是换了一些东西
一开始说的 那个得不到现在这个-40的结果吧
   

论坛徽章:
0
39 [报告]
发表于 2013-01-19 17:58 |只看该作者
回复 38# lin5161678

没看懂……没有编辑过……还请指明……

论坛徽章:
2
程序设计版块每日发帖之星
日期:2015-06-17 22:20:00每日论坛发贴之星
日期:2015-06-17 22:20:00
40 [报告]
发表于 2013-01-19 19:26 |只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP