c++题目 求解

#include <stdio.h>
void main()
{
int m=5;
int y=2;
printf("%d",y+=y-=m*=y);
}
不要结果,写出表达式的运算过程。

+= -= *=是同级的运算符,作为符合运算符它们在C++中是右结合的运算符,所以这个式子要从右往左进行计算。
先进行m*=y 相当于m=m*y,结果为10;
再进行中间的y-=m,y=y-m 结果为-8
最后y+=y,y=y+y, 结果为-16
温馨提示:答案为网友推荐,仅供参考
第1个回答  2010-06-20
原式=y+=(y-=(m*=y))=y+=(y-=(5*2))=y+=(y-=10)=y+=(-8)=-8-8=-16

VC6.0测试结果符合
第2个回答  2010-06-20
y+=y-=m*=y转换为
m=m*y 10
y=y-m -8
y=y+y -16
相似回答