运算符的优先级

所有单目运算符如(!,%,sin,cos,lg,开方等)和双目运算符如(+,-,x的y次方,与,或,>,< 等)

如果觉得下面记法可以,就当口诀吧。

(1)先(括号)内层,后(括号)外层。
解释:有扩号时,最内层的括号中的东西先算,再一层层向外。

(2)先函数,后运算。
解释:式中有函数,例如sqrt(),fabs(),sin()之类,先算函数。

(3)先算术,后关系,再逻辑。
解释:逻辑表达式中,混有算术运算,要先算算术(加减乘除,函数)运算,再算关系(大小,等不等)运算。最后算逻辑(或与非),得到真假。

(4)先乘除,后加减。
解释:同算术一样,先做乘除,后做加减。
逻辑运算符“与”又叫逻辑乘,逻辑运算符“或”,又叫逻辑加,按先乘除,后加减,“与”比“或”优先。

(5)先左,后右
解释:同级运算,先做左边的,后做右边的。

(6)搞不清,加括号。
解释:自己写算术表达式和逻辑表达式时,搞不清运算符优先级,可以加括号,括号里的总是先。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2006-08-20
下表从高到低列出了运算符的优先级。同一行中的运算符具有相同优先级,此时它们的结合方向决定求值顺序。

表格 15-1. 运算符优先级

结合方向 运算符 附加信息
非结合 new new
左 [ array()
非结合 ++ -- 递增/递减运算符
非结合 ! ~ - (int) (float) (string) (array) (object) @ 类型
左 * / % 算数运算符
左 + - . 算数运算符和字符串运算符
左 << >> 位运算符
非结合 < <= > >= 比较运算符
非结合 == != === !== 比较运算符
左 & 位运算符和引用
左 ^ 位运算符
左 | 位运算符
左 && 逻辑运算符
左 || 逻辑运算符
左 ? : 三元运算符
右 = += -= *= /= .= %= &= |= ^= <<= >>= 赋值运算符
左 and 逻辑运算符
左 xor 逻辑运算符
左 or 逻辑运算符
左 , 多处用到
第2个回答  2020-04-18
附录C
C语言运算符优先级和结合性
优先级
运算符
含义
运算类型
结合性
1


[
]
->
,
圆括号
下标运算符
指向结构体成员运算符
结构体成员运算符
单目
自左向右
2
!
~
++
--
(类型关键字)
+
-
*
&
sizeof
逻辑非运算符
按位取反运算符
自增、自尖运算符
强制类型转换
正、负号运算符
指针运算符
地址运算符
长度运算符
单目
自右向左
3
*
/
%
乘、除、求余运算符
双目
自左向右
4
+
-
加、减运算符
双目
自左向右
5
<<
>>
左移运算符
右移运算符
双目
自左向右
6
<
<=
>
>=
小于、大于、小于等于、大于等于
关系
自左向右
7
=
=
!=
等于、不等于
关系
自左向右
8
&
按位与运算符
位运算
自左向右
9
^
按位异或运算符
位运算
自左向右
10
|
按位或运算符
位运算
自左向右
11
&&
逻辑与运算符
位运算
自左向右
12
||
逻辑或运算符
位运算
自左向右
13
?
:
条件运算符
三目
自右向左
14
=
+=
-=
*=
/=
%=
<<
=
>>=
&=
^=
|=
赋值运算符
双目
自右向左
15
,
逗号运算
顺序
自左向右
第3个回答  2020-01-28
一元操作符优先级高于二元,求补的优先级比
交和并
高,交运算和并运算优先级相同
第4个回答  2020-05-07
相似回答