标题:[求助]一个简单程序的理解
只看楼主
neverTheSame
Rank: 3Rank: 3
来 自:江西农业大学
等 级:新手上路
威 望:9
帖 子:1511
专家分:0
注 册:2006-11-24
结帖率:100%
 问题点数:0 回复次数:7 
[求助]一个简单程序的理解
#include <iostream.h>
void main()
{
int a=0,b=0,d=1,c=0,e=0;
c=((e=++d),--d,++d)+((a=(++d)),--d,++d)+((b=++d),--d,++d);
cout<<"e="<<e<<endl;
cout<<"a="<<a<<endl;
cout<<"b="<<b<<endl;
cout<<"c="<<c<<endl;
}
在VC++结果:
e=2
a=2
b=2
c=10

怎么理解VC++运行先后.
搜索更多相关主题的帖子: cout endl void 
2007-03-29 18:27
游乐园
Rank: 3Rank: 3
等 级:新手上路
威 望:6
帖 子:671
专家分:0
注 册:2006-11-1
得分:0 
知道运算符的优先级关系还有逗号表达式的用法就行了

不同的编译器因为执行的顺序会有不同的结果吧...

unicorn-h.spaces. ◇◆ sava-scratch.spaces.
2007-03-29 18:33
neverTheSame
Rank: 3Rank: 3
来 自:江西农业大学
等 级:新手上路
威 望:9
帖 子:1511
专家分:0
注 册:2006-11-24
得分:0 

我只想知道,
这个程序是怎么得到结果的.


wap酷禾网(http://wap.),提供免费的、优质的、快捷的wap资源下载服务。
2007-03-29 20:23
neverTheSame
Rank: 3Rank: 3
来 自:江西农业大学
等 级:新手上路
威 望:9
帖 子:1511
专家分:0
注 册:2006-11-24
得分:0 

能不能分享你的理解,


wap酷禾网(http://wap.),提供免费的、优质的、快捷的wap资源下载服务。
2007-03-30 00:07
foxtt123
Rank: 1
等 级:新手上路
帖 子:11
专家分:0
注 册:2007-3-26
得分:0 

我也没想明白~~
e=++d//先加在引用,e=2 d=2
--d//d=1
++d//d=2
+
a=++d//a=3 d=3
--d//d=2
++d//d=3
+
b=++d//b=4,d=4
==d//d=3
++d//d=4

最后是2+3+4=9??
哪里出错呢??

等待有人解释下


[此贴子已经被作者于2007-3-30 1:39:51编辑过]


新手&菜鸟
2007-03-30 01:38
初心者1号
Rank: 1
等 级:新手上路
帖 子:42
专家分:0
注 册:2007-3-31
得分:0 
c=((e=++d),--d,++d)+((a=(++d)),--d,++d)+((b=++d),--d,++d);

着是什么意思???
2007-03-31 16:58
初心者1号
Rank: 1
等 级:新手上路
帖 子:42
专家分:0
注 册:2007-3-31
得分:0 

c=((e=++d),--d,++d)+((a=(++d)),--d,++d)+((b=++d),--d,++d);
是什么意思???

2007-03-31 17:03
neverTheSame
Rank: 3Rank: 3
来 自:江西农业大学
等 级:新手上路
威 望:9
帖 子:1511
专家分:0
注 册:2006-11-24
得分:0 
((e=++d),--d,++d)
先算(e=++d) 让d自加1再赋给e
再作逗号运算符计算,
逗号运算符是从左到右,

wap酷禾网(http://wap.),提供免费的、优质的、快捷的wap资源下载服务。
2007-03-31 18:49



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




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

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