| 网站首页 | 业界新闻 | 技术文章 | 下载频道 | 程序源码 | 个人空间 | 代码贴 | 编程论坛
→ 去下载频道上传资源和大附件(最大100M)
共有 2133 人关注过本帖
标题:求教大家,简单问题,但为什么是这样的结果?(vc6.0)
[收藏]  订阅  推荐  打印
默默无纹
Rank: 1
等 级:新手上路
帖 子:45
专家分:0
注 册:2008-2-12
结帖率:0/0
  问题点数: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)
请大家指点一下!

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

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


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

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

如果写错了...不要愤青...
欢迎交流peach5460@gmail.com
2008-2-24 21:08:22
cosdos
Rank: 9Rank: 9Rank: 9
来 自:ShangHai
等 级:蜘蛛侠
威 望:6
帖 子:2073
专家分:1277
注 册:2007-6-19
  得分:0 
对于
-- 和 ++ 的处理,是没有标准的。
完全取决于实现

—>〉Sun〈<—
2008-2-24 21:34:30
lv5sky
Rank: 1
等 级:新手上路
帖 子:76
专家分:0
注 册:2007-10-5
  得分:0 
时这样
原来如此!
2008-2-24 21:49:44
chenyiqing23
Rank: 2
等 级:论坛游民
帖 子:67
专家分:46
注 册: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-2-24 23:26:15
chenyiqing23
Rank: 2
等 级:论坛游民
帖 子:67
专家分:46
注 册: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-2-24 23:27:11







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

编程中国 版权所有,并保留所有权利。鲁ICP备08000592号
Powered by Discuz, Processed in 0.221428 second(s), 10 queries.
Copyright©2004-2012, BCCN.NET, All Rights Reserved