[求助]一个简单程序的理解
#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++运行先后.
----------------解决方案--------------------------------------------------------
知道运算符的优先级关系还有逗号表达式的用法就行了
不同的编译器因为执行的顺序会有不同的结果吧...
----------------解决方案--------------------------------------------------------
我只想知道,
这个程序是怎么得到结果的.
----------------解决方案--------------------------------------------------------
能不能分享你的理解,
----------------解决方案--------------------------------------------------------
我也没想明白~~
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
再作逗号运算符计算,
逗号运算符是从左到右,
----------------解决方案--------------------------------------------------------