c语言中a-=a是什么意思

c语言中a-=a是什么意思

第1个回答  2009-01-13
a+=a-=a*=a相当于a+=(a-=(a*=a))
先计算a*=a 即a=a*a,a=144;
其次a-=144 即a=a-144,a=144-144=0;
最后a+=0 即a=a-0,a=0
第2个回答  2009-01-13
右结合的
a+=a-=a*=a等价于a+=(a-=(a*=a))
所以就是0

"匿名"正解
第3个回答  2020-01-13
第4个回答  2020-03-25
a-=a的意思为a=a-a,先用a减a,然后再将得到的结果赋值给a。-=实际上是一种缩写形式,使得对变量的改变更为简洁。
运算时,可以将其写成熟悉的形式,从右向左依次计算,注意在每次计算时,变量的值会发生改变,
如不注意,就会导致错误的情况发生。
扩展资料:
复合赋值运算符有下列这些:
符号
功能
+=
加法赋值
-=
减法赋值
*=
乘法赋值
/=
除法赋值
%=
模运算赋值
<<=
左移赋值
>>=
右移赋值
&=
位逻辑与赋值
|=
位逻辑或赋值
^=
位逻辑异或赋值
参考资料来源:百度百科-复合赋值运算符
第5个回答  2019-03-04
从右往左算
初始值a=12
第一步:a+=a-=[a*=a] ,先算括号里的 ——> a*=a 即 a=a*a=12*12=144
(经过第一步后,原本初始值a=12已经变成了a=144)
第二步:a+=[a-=144] ,括号里的a-=144,即 a=a-144=144-144=0
(经过第二步后,a的值变成了0)
第三步:a+=0 ,即a=a+0=0+0=0
最后答案是:0