算术运算符优先级怪癖

时间:2014-04-19 02:34:26

标签: objective-c arithmetic-expressions

在C中,由于加法运算符(+)在减法( - )之前优先,我假设下面的表达式将返回0

5 - 1 + 4

但不,它会返回8。那是为什么?

P.S。:在Objective-C中测试该表达。

编辑:显然我对加法优先于减法的假设是错误的。如果被认为没有帮助,请随时关闭此帖。

1 个答案:

答案 0 :(得分:4)

因为添加优先于减法。两者都具有相同的优先级,并且从左到右关联。因此5 - 1 + 4等同于(5 - 1) + 4

(评估顺序未指定,仅在操作数有副作用时才有意义。)