admin管理员组文章数量:1596345
2024年4月25日发(作者:)
优先
级
运算符
[]
()
名称或含义
数组下标
圆括号
成员选择(对象)
成员选择(指针)
负号运算符
强制类型转换
自增运算符
使用形式
数组名[常量表达式]
(表达式)/函数名
(形参表)
对象.成员名
对象指针->成员名
-表达式
(数据类型)表达式
++变量名/变量名++
结合方
向
说明
1
.
->
-
(类型)
++
左到右
单目运算
符
单目运算
符
单目运算
符
右到左
单目运算
符
单目运算
符
单目运算
符
单目运算
符
双目运算
符
左到右
双目运算
符
双目运算
符
左到右
双目运算
-- 自减运算符 --变量名/变量名--
2 * 取值运算符 *指针变量
& 取地址运算符 &变量名
! 逻辑非运算符 !表达式
~
sizeof
/
按位取反运算符
长度运算符
除
~表达式
sizeof(表达式)
表达式/表达式
3 * 乘 表达式*表达式
整型表达式/整型表
达式
表达式+表达式
%
4 +
余数(取模)
加
符
- 减 表达式-表达式
双目运算
符
双目运算
符
左到右
>> 右移 变量>>表达式
双目运算
符
左到右
双目运算
符
<<
5
左移 变量<<表达式
6 > 大于 表达式>表达式
>=
<
<=
==
7
!=
8
9
10
11
12
13
&
^
|
&&
||
?:
=
/=
*=
%=
+=
14 -=
<<=
>>=
&=
^=
|=
15 ,
大于等于
小于
小于等于
等于
不等于
按位与
按位异或
按位或
逻辑与
逻辑或
条件运算符
赋值运算符
除后赋值
乘后赋值
取模后赋值
加后赋值
减后赋值
左移后赋值
右移后赋值
按位与后赋值
按位异或后赋值
按位或后赋值
逗号运算符
表达式>=表达式
表达式<表达式
表达式<=表达式
表达式==表达式
左到右
表达式!= 表达式
表达式&表达式
表达式^表达式
表达式|表达式
表达式&&表达式
表达式||表达式
表达式1? 表达式2:
表达式3
变量=表达式
变量/=表达式
变量*=表达式
变量%=表达式
变量+=表达式
变量-=表达式
变量<<=表达式
变量>>=表达式
变量&=表达式
变量^=表达式
变量|=表达式
表达式,表达式,…
左到右
左到右
左到右
左到右
左到右
右到左
双目运算符
双目运算符
双目运算符
双目运算符
双目运算符
双目运算符
双目运算符
双目运算符
双目运算符
双目运算符
三目运算符
右到左
左到右 从左向右顺序运算
所有的优先级中,只有三个优先级是从右至左结合的,它们是单目运算符、条件运算符、赋
值运算符。其它的都是从左至右结合。
具有最高优先级的其实并不算是真正的运算符,它们算是一类特殊的操作。()是与函数
相关,[]与数组相关,而->及.是取结构成员。
其次是单目运算符,所有的单目运算符具有相同的优先级,因此在我认为的 真正的运
算符中它们具有最高的优先级,又由于它们都是从右至左结合的,因此*p++与*(p++)等效是
毫无疑问的。
接下来是算术运算符,*、/、%的优先级当然比+、-高了。
移位运算符紧随其后。
其次的关系运算符中,< <= > >=要比 == !=高一个级别,不大好理解。
所有的逻辑操作符都具有不同的优先级(单目运算符出外,!和~)
逻辑位操作符的"与"比"或"高,而"异或"则在它们之间。
跟在其后的&&比||高。
接下来的是条件运算符,赋值运算符及逗号运算符。
在C语言中,只有4个运算符规定了运算方向,它们是&&、| |、条件运算符及赋值运
算符。
&&、| |都是先计算左边表达式的值,当左边表达式的值能确定整个表达式的值时,就
不再计算右边表达式的值。如 a = 0 && b; &&运算符的左边位0,则右边表达式b
就不再判断。
在条件运算符中。如a?b:c;先判断a的值,再根据a的值对b或c之中的一个进行求
值。
赋值表达式则规定先对右边的表达式求值,因此使 a = b = c = 6;成为可能。
C语言运算符优先级顺口溜[转]
醋坛酸味灌
味落跳福豆
共44个运算符
醋-初等,4个: ( ) [ ] -> 指向结构体成员 . 结构体成员
坛-单目,9个: ! ~ ++ -- -负号 (类型) *指针 &取地址 sizeof长度 (结
合方向:自右向左)
酸-算术,5个: * / % + -减
味-位移,2个: << >>
灌-关系,6个: < <= > >= == 等于 != 不等于
味-位逻,3个: & 按位与 ^ 按位异或 | 按位或
落-逻辑,2个: && 逻辑与 || 逻辑或
跳-条件,1个,三
目: ? :
(结
合方向:自右向左)
福-赋值,11个: = += -= *= /= %= >>= <<= &= ^=
|= (结合方向:自右向左)
豆-逗号,1个: ,
结合方向自右向左的只有三类:赋值、单目和三目,其它的都是从左至右结合。
以上资料来源于网络
(注:可编辑下载,若有不当之处,请指正,谢谢!)
版权声明:本文标题:C语言运算符优先级详细列表与说明 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:https://www.elefans.com/dianzi/1713980361a381326.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论