C语言中定义int a=6,则表达式a+=a-=a*a等于多少? 请说明计算过程 谢谢

如题所述

a+=a-=a*a等于-60
自右向左执行
a+=a-=a*a相当于a=a+(a-=a*a)
a-=a*a相当于a=a-a*a

执行1:a*a=36
执行2:a=a-36,代入a=6得,a=-30
执行3:a=a-30,代入a=-30得,a=-60
温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-12-20
答案是-60
我们把式子分解了看
运算是从右边读过来的(这个不知道的话去翻书)
程序先运算a=a-a*a
这步完了之后a已经等于-30了
再运算
a=a+(a)//注:括号里的a不是单独的a,是刚刚的一大串,即a-=a*a,但此时这一串已经等于-30了,单独一个a也等于-30了,所以a+a就是-60
第2个回答  2011-12-20
6*6=36,6-36=-30,-30-30=-60
输出是-60
第3个回答  2011-12-20
a+=a-=a*a;把它分解下就是 先执行 a-=a*a; 等价于:a=a-a*a 则得到a=-30;
在执行a+=a;等价于 a=a+a ; 最后就得到a的值为 -60;
相似回答