8.8 运算符优先级

运算符优先级决定了当同一表达式中出现不同运算符时,运算符的分组方式。例如,*的优先级高于+。因此,表达式a + b * c表示先将bc相乘,再将a与乘积相加(即a + (b * c))。

您可以使用括号来覆盖运算符的优先级。您可以把优先级规则理解为:当您自己未使用括号时,括号默认所在的位置。事实上,当您使用不常见的运算符组合时,明智的做法是使用括号,因为其他阅读代码的人可能不记得这种情况下的优先级。您自己也可能忘记,从而犯下错误。显式括号有助于防止任何此类错误。

当优先级相同的运算符一起使用时,最左边的运算符首先分组,但赋值运算符除外,它们按相反的顺序分组。因此,表达式a - b + c分组为(a - b) + c,而表达式a = b = c分组为a = (b = c)

当操作数后面跟有另一个运算符时,前缀一元运算符的优先级就很重要。例如,-x^2表示-(x^2),因为-的优先级低于^

以下是 Octave 中运算符的表格,按优先级从高到低排列。除非另有说明,所有运算符均从左到右分组。

函数调用、数组索引、元胞数组索引和结构体元素索引

()’ ‘{}’ ‘.

后缀递增和后缀递减

++’ ‘--

这些运算符从右向左分组。

转置和幂运算

'’ ‘.'’ ‘^’ ‘.^

一元正号、一元负号、前缀递增、前缀递减和逻辑"非"

+’ ‘-’ ‘++’ ‘--’ ‘~’ ‘!

乘法和除法

*’ ‘/’ ‘\’ ‘.\’ ‘.*’ ‘./

加法和减法

+’ ‘-

冒号

:

关系运算符

<’ ‘<=’ ‘==’ ‘>=’ ‘>’ ‘!=’ ‘~=

逐元素"与"

&

逐元素"或"

|

逻辑"与"

&&

逻辑"或"

||

赋值

=’ ‘+=’ ‘-=’ ‘*=’ ‘/=’ ‘\=’ ‘^=’ ‘.*=’ ‘./=’ ‘.\=’ ‘.^=’ ‘|=’ ‘&=

这些运算符从右向左分组。


版权所有 © 2024-2026 Octave中文网

ICP备案/许可证号:黑ICP备2024030411号-4