标题:求教大家,简单问题,但为什么是这样的结果?(vc6.0)
只看楼主
默默无纹
Rank: 1
等 级:新手上路
帖 子:45
专家分:0
注 册:2008-2-12
 问题点数:0 回复次数:12 
求教大家,简单问题,但为什么是这样的结果?(vc6.0)
很简单的程序
void main()
{
int i=8;
printf("%d\n%d\n%d\n%d\n",++i,--i,i++,i--);
}
但是结果为(8 7 8 8)无论是从左到右顺序求值还是从右到左顺序求值都不应该是这个结果吧?
我觉得从左到右应该是(9 8 8 9 )从右到左是(8 7 7 8),
是我的错还是编译器的原因?如果是从右到左顺序求值,为什么结果不是(8 7 7 8)而是(8 7 8 8)
请大家指点一下!

[[it] 本帖最后由 默默无纹 于 2008-2-24 21:04 编辑 [/it]]
搜索更多相关主题的帖子: 简单问题 结果 求值 void 
2008-02-24 16:36
qfyzy
Rank: 2
等 级:论坛游民
威 望:1
帖 子:380
专家分:86
注 册:2008-2-17
得分:0 
没人错了,书上写的很明白,这种式子没有确定的求值顺序,完全取决于编译器
2008-02-24 17:01
默默无纹
Rank: 1
等 级:新手上路
帖 子:45
专家分:0
注 册:2008-2-12
得分:0 
回复 2# 的帖子
谢谢了,但我不明白的是结果呀!
2008-02-24 17:14
bruin
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2007-12-1
得分:0 
没错,C并没有规定参数之间的计算顺序
2008-02-24 17:14
默默无纹
Rank: 1
等 级:新手上路
帖 子:45
专家分:0
注 册:2008-2-12
得分:0 
高手们指点下呀!
2008-02-24 21:08
peach5460
Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15
来 自:武汉
等 级:贵宾
威 望:30
帖 子:2780
专家分:6060
注 册:2008-1-28
得分:0 
[bo]以下是引用 [un]bruin[/un] 在 2008-2-24 17:14 的发言:[/bo]

没错,C并没有规定参数之间的计算顺序


貌似有顺序的..printf是从右向左的...

ps:::VC6.0的顺序是乱的...我可以举很多例子...

我总觉得授人以鱼不如授人以渔...
可是总有些SB叫嚣着:要么给代码给答案,要么滚蛋...
虽然我知道不要跟SB一般见识,但是我真的没修炼到宠辱不惊...
2008-02-24 21:08
cosdos
Rank: 9Rank: 9Rank: 9
来 自:ShangHai
等 级:蜘蛛侠
威 望:6
帖 子:2109
专家分:1385
注 册:2007-6-19
得分:0 
对于
-- 和 ++ 的处理,是没有标准的。
完全取决于实现

—>〉Sun〈<—
2008-02-24 21:34
lv5sky
Rank: 1
等 级:新手上路
帖 子:76
专家分:0
注 册:2007-10-5
得分:0 
时这样
原来如此!
2008-02-24 21:49
chenyiqing23
Rank: 2
等 级:论坛游民
帖 子:84
专家分:53
注 册:2007-12-27
得分:0 
ok
printf("%d\n%d\n%d\n%d\n",++i,--i,i++,i--);
是从右往左开始的!!!
结果没错!!! ++i 是9 i++是8 --i是7 i--是8

printf("%d\n%d\n%d\n%d\n",(++i,i),--i,(i++,i++),i--);
你看看这是什么结果!!!这个更难了!!!
这里关系到括号运算的!!!
你遇到的问题是我以前也遇到过的!!!
加油!!!朋友!!!
2008-02-24 23:26
chenyiqing23
Rank: 2
等 级:论坛游民
帖 子:84
专家分:53
注 册:2007-12-27
得分:0 
ok
printf("%d\n%d\n%d\n%d\n",++i,--i,i++,i--);
是从右往左开始的!!!
结果没错!!! ++i 是9 i++是8 --i是7 i--是8

printf("%d\n%d\n%d\n%d\n",(++i,i),--i,(i++,i++),i--);
你看看这是什么结果!!!这个更难了!!!
这里关系到括号运算的!!!
你遇到的问题是我以前也遇到过的!!!
加油!!!朋友!!!
2008-02-24 23:27



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




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

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