请教一个关于自加 自减的问题
程序如下:#include<stdio.h>
main()
{
int a=5, b=0,c=0,d=0,e=0,f=0;
c=++a;
d=--a;
e=c*d;
a=5;
f=(++a)*(--a);
a=5;
b=++a*--a;
}
在TC2.0上运行出来之后 b=f=25 e=30
这个是为什么呢?
----------------解决方案--------------------------------------------------------
老问题了,不要依赖于未定义行为!
----------------解决方案--------------------------------------------------------
谢谢
----------------解决方案--------------------------------------------------------
++和--的运算级高
a=5;f=(++a)*(--a);
先算出a的植为5后赋值。
----------------解决方案--------------------------------------------------------
b怎么不是自加成6再乘上自减成4为24,而是25呢?很疑问?
----------------解决方案--------------------------------------------------------
这个是个运算级别,也就是运算顺序的问题吧……
另外,C的运算一般来说是从右到左的……
----------------解决方案--------------------------------------------------------
恩,我也觉得应该是24啊
----------------解决方案--------------------------------------------------------
看不懂的啊!
能够一步一步解释的吗?
什么意思,
从右到左,结果有什么区别?
----------------解决方案--------------------------------------------------------
能不能详细说下 看起来应该就是24 怎么会是25呢?
----------------解决方案--------------------------------------------------------
还有.e=30???
----------------解决方案--------------------------------------------------------