运算符的优先级

  在计算表达式时,会按顺序处理每个运算符。但这并不意味着必须从左至右地运用这些运算符。

例如,考虑下面的代码:

  1. var1 = var2 + var3;

  其中 + 运算符就是在 = 运算符之前进行计算的。在其他一些情况下,运算符的优先级并没有这么明显,例如:

  1. var1 = var2 + var3 * var4;

  其中 * 运算符首先计算,其后是 + 运算符,最后是 = 运算符,这是标准的数学运算顺序,其结果与我们在纸上进行算术运算的结果相同。

  像这样的计算,可以使用括号控制运算符的优先级,例如:

  1. var1 = (var2 + var3) * var4;

  首先计算括号中的内容,即 + 运算符在 * 运算符之前计算。

  对于前面介绍的运算符,其优先级 如表 3-10 所示,优先级相同的运算符(如 * 和 /)按照从左至右的顺序计算。

表3-10 运算符的优先级

优先级运算符
优先级++, —(用作前缀); +, -(一元)
, /, %
+, -
=, =, /=, %=, +=, -=
++,—(用作后缀)
  如上所述,括号可用于重写优先级顺序。另外,++ 和 — 用作后缀运算符时,在概念上其优先级最低,如上表所示。它们不对赋值表达式的结果产生影响,所以可以认为它们的优先级比所有其他运算符都高。但是,它们会在计算表达式后改变操作数的值,所以认为它们的优先级 如表 3-10 所示 会十分方便。