为什么这个值被替换了,不应该先执行括号的吗

img

为什么这个值被替换了,不应该先执行括号的吗,先把a赋给b,b变成了3,然后a=3+3-3=3?为什么回复替换?

可能在把a赋给b之前,b的值已经被取出来了,修改的是原始值,对表达式中的b没有影响,故相当于5-3 = 2

从左往右执行,先执行了3+3然后才是将a赋给b;a = a + b - (b = a) => 2 = 3 + 2 - 3;

3 + 2 - 3 ; a = 2 ,b = 3;(b = a)是赋值运算,优先级在加减法运算后面,所以先算的前面 a(3) + b(2) -