大师与玛格丽特 下载:运算符的优先级
如果觉得下面记法可以,就当口诀吧。
(1)先(括号)内层,后(括号)外层。
解释:有扩号时,最内层的括号中的东西先算,再一层层向外。
(2)先函数,后运算。
解释:式中有函数,例如sqrt(),fabs(),sin()之类,先算函数。
(3)先算术,后关系,再逻辑。
解释:逻辑表达式中,混有算术运算,要先算算术(加减乘除,函数)运算,再算关系(大小,等不等)运算。最后算逻辑(或与非),得到真假。
(4)先乘除,后加减。
解释:同算术一样,先做乘除,后做加减。
逻辑运算符“与”又叫逻辑乘,逻辑运算符“或”,又叫逻辑加,按先乘除,后加减,“与”比“或”优先。
(5)先左,后右
解释:同级运算,先做左边的,后做右边的。
(6)搞不清,加括号。
解释:自己写算术表达式和逻辑表达式时,搞不清运算符优先级,可以加括号,括号里的总是先。
下表从高到低列出了运算符的优先级。同一行中的运算符具有相同优先级,此时它们的结合方向决定求值顺序。
表格 15-1. 运算符优先级
结合方向 运算符 附加信息
非结合 new new
左 [ array()
非结合 ++ -- 递增/递减运算符
非结合 ! ~ - (int) (float) (string) (array) (object) @ 类型
左 * / % 算数运算符
左 + - . 算数运算符和字符串运算符
左 << >> 位运算符
非结合 < <= > >= 比较运算符
非结合 == != === !== 比较运算符
左 & 位运算符和引用
左 ^ 位运算符
左 | 位运算符
左 && 逻辑运算符
左 || 逻辑运算符
左 ? : 三元运算符
右 = += -= *= /= .= %= &= |= ^= <<= >>= 赋值运算符
左 and 逻辑运算符
左 xor 逻辑运算符
左 or 逻辑运算符
左 , 多处用到
单目运算符高于双目运算符。双目运算符高于三目运算符。同级运算符的优先级和数学的一致