敖大风本子:请大侠帮忙分析一下一条C++表达式,菜鸟不明白!

来源:百度文库 编辑:查人人中国名人网 时间:2024/04/28 08:51:47
int a=10;
a+=a-=a*a;

帮忙分析一下这个 a+=a-=a*a; 中的 a 的值是多少。
是怎么得出来的呢?谢谢!

答案为-180。

因为a=10,所以a*a=100
a-=a*a ---〉a=a-100 所以a=-90
因为a=-90,a+=a-=a*a---> a=a+(a-=a*a) 所以a=-180

a+=a-=a*=a
是从右到左,*级别大于=(这里是赋值)

所以显示
a*=a
也就是a=10*10=100
a-=a
也就是a=100-100=0
a+=a
也就是a=0+0=0

这个也是我答的
http://zhidao.baidu.com/question/7871025.html

楼上的说错了,你回答的那个题是a+=a-=a*=a;看清楚这里是a+=a-=a*a;
从右往左算,第一步是a=a-a*a=10-10*10=-90,然后a=a+a=-180,结果是a=-180。