表达方式
rez = a-- + (-3) * (-2)
被解析为
res = ((a--) + ((-3) * (-2)))
并被评估为"将结果a--
添加到结果中(-3) * (-2)
,并将最终结果分配给res
".
Postfix的--
优先级高于一元-
,后者的优先级高于二进制*
,后者的优先级高于二进制+
,后者的优先级高于二进制=
.
请注意,评估的优先顺序和顺序并不相同 - 它不能保证a--
在之前评估(-3) * (-2)
,或者-3
之前评估-2
; 所有有保证的是,结果的(-3) * (-2)
,才可以被添加到已知结果的a--
.
Futhermore的副作用的a--
没有评估后立刻应用.这意味着以下是完全有效的操作顺序:
t1 = a t2 = -2 t2 = t2 * -3 res = t1 + t2 a = a - 1