标题:求助,关于自增的问题 也许你没见过
只看楼主
hjh10845
Rank: 1
来 自:火星
等 级:新手上路
帖 子:104
专家分:0
注 册:2008-3-31
得分:0 
无语
TC运算此类是自右向左..

<接受者>? or <创造者>?
2008-04-29 23:15
zhuyiling
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2008-4-29
得分:0 
这种程序的风格很不好,建议楼主不要这么写了
2008-04-29 23:18
StarWing83
Rank: 8Rank: 8
来 自:仙女座大星云
等 级:贵宾
威 望:19
帖 子:3951
专家分:748
注 册:2007-11-16
得分:0 
21#:这和运算方向无关。因为所有的运算,无论什么方向,都必须在下个顺序点之前结束。具体可以看我引用的网址。还有不止TC,标准规定了赋值操作符的结合方向(而不是运算方向)是自右向左的。况且,TC出现的时候,还没有标准。不遵守标准的规定是正常的。这也是不推荐使用TC的原因之一。
22#:这不是风格的问题。这是彻头彻尾的错误!

专心编程………
飞燕算法初级群:3996098
我的Blog
2008-04-29 23:24
hjh10845
Rank: 1
来 自:火星
等 级:新手上路
帖 子:104
专家分:0
注 册:2008-3-31
得分:0 
23#好像很激动。勿燥!~~~

<接受者>? or <创造者>?
2008-04-29 23:31
喜马拉雅
Rank: 1
等 级:新手上路
帖 子:27
专家分:0
注 册:2008-4-24
得分:0 
首先我们看下这个表达式:
a*b+c*d+e*f
这个表达式是怎么运算的呢?
你可能认为是先乘后加,答案是错的
他可以的顺序为:
一、
1: a*b
2:  c*d
3:  (a*b)+(c*d)
4:  e*f
5:  (a*b)+(c*d)+(e*f)
二、
1:   c*d
2:   e*f
3:   a*b
4:  (a*b)+(c*d)
5:  (a*b)+(c*d)+(e*f)
WHY?
原因是加法运算的结合性要求两个加法运算按照先左后右的顺序执行
但对表达式的剩余部分执行顺序并未加规定,尤其是这里并没有要求
所有的乘法首先计算,也没有规则规定这几个乘法运算谁先执行。

希望这个能给楼主以启发。
2008-04-29 23:47
思考ING
Rank: 1
来 自:重庆
等 级:新手上路
帖 子:140
专家分:0
注 册:2008-3-12
得分:0 
恩?稀奇~~~~~~~~~~~从未听说过~~~~~~~~~~~~

天生孤独的思考~~~~~~~~~
2008-04-29 23:51
喜马拉雅
Rank: 1
等 级:新手上路
帖 子:27
专家分:0
注 册:2008-4-24
得分:0 
这是美国Kenneth A.Peek著的C和指针里面介绍的
感兴趣的可以去读下,肯定收获颇丰.
2008-04-29 23:58
StarWing83
Rank: 8Rank: 8
来 自:仙女座大星云
等 级:贵宾
威 望:19
帖 子:3951
专家分:748
注 册:2007-11-16
得分:0 
恩恩……很好……喜马拉雅的发言印证了我的观点……

专心编程………
飞燕算法初级群:3996098
我的Blog
2008-04-30 12:56
孙杰
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2008-4-30
得分:0 
我认为答案是9啊,y=i+++i++;前面I++的答案是4再加上I++后面的I是一个5
2008-04-30 20:46
张信哲
Rank: 1
等 级:新手上路
帖 子:139
专家分:0
注 册:2008-4-3
得分:0 
记得以前讨论过,谭浩强的那本书上不是也叫你不要这么写的吗?
这根编译器有关。
以后看书看仔细点吧。
呵呵

相信自己,学无止尽。
2008-04-30 20:52



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-211609-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.185463 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved