这个用数学表达式没办法写,因为这个是一边计算一边重新赋值。
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