当前位置: 代码迷 >> C语言 >> [求助]一个简单程序的理解
  详细解决方案

[求助]一个简单程序的理解

热度:95   发布时间:2007-03-29 18:27:28.0
[求助]一个简单程序的理解
#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  

----------------解决方案--------------------------------------------------------
知道运算符的优先级关系还有逗号表达式的用法就行了

不同的编译器因为执行的顺序会有不同的结果吧...
----------------解决方案--------------------------------------------------------

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


----------------解决方案--------------------------------------------------------

能不能分享你的理解,


----------------解决方案--------------------------------------------------------

我也没想明白~~
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编辑过]


----------------解决方案--------------------------------------------------------
c=((e=++d),--d,++d)+((a=(++d)),--d,++d)+((b=++d),--d,++d);

着是什么意思???

----------------解决方案--------------------------------------------------------

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


----------------解决方案--------------------------------------------------------
((e=++d),--d,++d)
先算(e=++d) 让d自加1再赋给e
再作逗号运算符计算,
逗号运算符是从左到右,
----------------解决方案--------------------------------------------------------
  相关解决方案