int m=5y=2 y+=y-=m*=y 用数学表达式怎么表示,写出理由

 

这个用数学表达式没办法写,因为这个是一边计算一边重新赋值。

y+=(y-=(m*=y))

计算最里面的括号结果为10,并且m赋值为10,该式变为:

y=2,m=10
y+=(y-=10)

然后继续计算括号里的,结果为-8,并且y被赋值为-8,该式变为:

y=-8,m=10
y+=(-8)

最后就y=y-8,由于y的值为-8,最后结果为-16

 

 

从右往左结合,拆开就是

a=(m*=y);     //a=m=10

b=(y-=a);     //b=y=-8

c=(y+=b);     //c=y=-16