例子 1:单目和双目运算符
考虑表达式 -a * b
。在这里,-
是单目负号运算符,*
是乘法运算符。根据优先级,单目运算符(如 -
)具有比双目运算符(如 *
)更高的优先级。因此,首先应用单目运算符到 a
,然后结果与 b
相乘。
int a = 5, b = 2;
int result = -a * b; // 计算为 -10,因为先计算 -a 得到 -5,然后 -5 * 2 = -10
例子 2:圆括号改变优先级
考虑表达式 4 * (2 + 3)
。在没有圆括号的情况下,根据乘法和加法的默认优先级,乘法会先于加法执行。但是,圆括号 ()
用于改变运算顺序,使得加法 2 + 3
先于乘法执行。
int result = 4 * (2 + 3); // 计算为 20,因为先计算圆括号内的 2 + 3 得到 5,然后 4 * 5 = 20
例子 3:赋值运算符
考虑表达式 a = b = 5
。赋值运算符 =
的结合方向是从右到左,这意味着表达式从右边开始计算。因此,首先 b
被赋值为 5
,然后 a
也被赋值为 b
的值,即 5
。
int a, b;
a = b = 5; // 首先 b 被赋值为 5,然后 a 也被赋值为 b 的值,即 5
例子 4:逻辑与和逻辑或
考虑表达式 a > b && b > 0 || b < a
。在这里,逻辑与运算符 &&
有比逻辑或运算符 ||
更高的优先级。因此,首先计算 a > b && b > 0
的结果,然后该结果与 b < a
的结果通过逻辑或运算符 ||
进行组合。
int a = 4, b = 2;
int result = a > b && b > 0 || b < a; // 计算为 1 (true),因为 a > b && b > 0 的结果为 true,然后 true || (任何值) 也为 true