[此贴子已经被作者于2006-3-8 21:33:48编辑过]
----------------解决方案--------------------------------------------------------
我用TC ,得出的结果是21
----------------解决方案--------------------------------------------------------
以下是引用showna在2006-3-8 22:54:00的发言:
我用TC ,得出的结果是21
我用TC ,得出的结果是21
不会吧,我用TC2.0,和TC3.0的结果都是20
----------------解决方案--------------------------------------------------------
再重复一次,答案没错,是算符的优先级的问题.因为单目运算符的级别比双目的高.因此先进行自增运算,然后是双目的加法;
7+7+7=21
----------------解决方案--------------------------------------------------------
这个问题怎么还在讨论啊,这是根据不同的编译器而定的,
----------------解决方案--------------------------------------------------------
支持楼上的小妹妹
----------------解决方案--------------------------------------------------------
顺序
1、(++i) ->a
2、(++i) ->b
3、(i++) ->c
4、k=a+b+c
----------------解决方案--------------------------------------------------------
以下是引用DaytonaUSA在2006-3-9 1:11:00的发言:
顺序
1、(++i) ->a
2、(++i) ->b
3、(i++) ->c
4、k=a+b+c
顺序
1、(++i) ->a
2、(++i) ->b
3、(i++) ->c
4、k=a+b+c
晕
----------------解决方案--------------------------------------------------------
19楼的,你说的我验证了.是这样的情况.我分析是顺序点的问题,因为你用 printf时没有顺序点";"因此编译器并不是一定要在表达式完前执行全部的自增自减运算,这个要看不同编译器而定了.而如果定义t=(++i)+(++i)+(i++);在顺序点前一定要执行全部的算符,因此
我觉得如果是输出变量t的值的话,不管什么编译器(同级的从左或从右开始算)结果都应该是21.但是应该尽量避免出现printf("%d",(++i)+(++i)+(i++));这样的语句.
----------------解决方案--------------------------------------------------------
这样的题太无聊了.
回字有4种写法你知道吗
[此贴子已经被作者于2006-3-9 16:01:33编辑过]
----------------解决方案--------------------------------------------------------