int a=12 a+=a-=a*=a 为什么赋值表达式中a最后算出为0

来源:百度知道 编辑:UC知道 时间:2024/06/15 15:07:02

自右向左算,
化算如下:
a+=a-=a*=a

a+=a-=a=a*a

a+=a-=a=12*12

a+=a-=a=144

a+=a=a-a=144-144

a+=a=0

a=a+a=0+0=0

有a-,所以最后的值是0了。
因为中间会有一步是a-=a

a+=a-=a*=a:
a=a+(a=a-(a=a*a))
==a-a==0

这个式子是从右向左计算的
先算 a*=a 就是a=a*a=24
再算 a-=a 就是a=a-a=0
继续算 a+=a 就是a=a+a=0