问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

C语言运算符优先级速查攻略

创作时间:
作者:
@小白创作中心

C语言运算符优先级速查攻略

引用
CSDN
7
来源
1.
https://blog.csdn.net/m0_37149062/article/details/135661757
2.
https://blog.csdn.net/2302_80357424/article/details/136953790
3.
https://blog.csdn.net/m0_73634434/article/details/139128464
4.
https://blog.csdn.net/2302_80837091/article/details/138231357
5.
https://en.cppreference.com/w/cpp/language/operator_precedence
6.
https://my.oschina.net/emacs_8657391/blog/16900912
7.
https://www.cnblogs.com/anliux/p/18367165

掌握C语言运算符优先级是每个程序员的基本功。在复杂的表达式中,运算符的执行顺序直接影响程序的运行结果。本文为你整理了一份完整的C语言运算符优先级表格,并对一些容易混淆的运算符进行了特别说明。建议将本文收藏,以便随时查阅。

01

C语言运算符优先级表

下表列出了C语言中所有运算符的优先级顺序,从高到低排列。同一行中的运算符具有相同的优先级,按照从左到右的顺序计算(除非特别说明)。

优先级
运算符
名称/含义
结合性
1
()
圆括号 (聚组)
左 --> 右
[]
下标引用
.
成员选择(对象)
->
用指针访问结构体
2
++
后置++
左 --> 右
--
后置--
!
逻辑非
右 --> 左
~
按位取反(二进制位)
+
正号运算符
-
负号运算符
++
前置++
--
前置--
*
间接访问(解引用)
&
取地址运算符
sizeof
求变量的长度
(类型)
强制类型转换
3
/
左 --> 右
*
%
余数(取模)
4
+
左 --> 右
-
5
<<
左移
左 --> 右
>>
右移
6
>
大于
左 --> 右
>=
大于等于
<
小于
<=
小于等于
7
==
等于
左 --> 右
!=
不等于
8
&
按位与(二进制位)
左 --> 右
9
^
按位异或(二进制位)
左 --> 右
10
按位或(二进制位)
11
&&
逻辑与
左 --> 右
12
13
?:
条件运算符
右 --> 左
14
=
赋值
右 --> 左
/=
除等于
*=
乘等于
%=
取余等于
+=
加等于
-=
减等于
<<=
左移后赋值
>>=
右移后赋值
&=
按位与后赋值
^=
异或后赋值
=
按位或后赋值
15
,
逗号运算符
左 --> 右
02

特别说明

  1. 括号运算符:括号可以改变运算符的默认优先级,任何在括号内的表达式都会优先计算。

  2. 单目运算符:这一类运算符包括逻辑非(!)、按位取反(~)、正号(+)、负号(-)、前置和后置的自增自减运算符(++)和(--)、解引用(*)、取地址(&)、sizeof和类型转换。它们的优先级高于所有双目运算符。

  3. 关系运算符和逻辑运算符:关系运算符(如<、>、<=、>=)的优先级高于相等运算符(==、!=),而逻辑与(&&)的优先级又高于逻辑或(||)。

  4. 赋值运算符:所有赋值运算符的优先级都较低,这意味着在赋值表达式中,赋值运算通常最后执行。

03

实用建议

  1. 使用括号:即使你已经熟悉运算符优先级,使用括号来明确表达式的计算顺序也是一个好习惯。这不仅能避免潜在的错误,还能提高代码的可读性。

  2. 避免复杂表达式:如果一个表达式过于复杂,考虑将其分解为多个简单的语句。这不仅有助于调试,还能使代码更易于理解。

  3. 注意结合性:对于同一优先级的运算符,要注意它们的结合性(左结合或右结合),这在编写链式表达式时尤为重要。

掌握运算符优先级是编写正确C语言代码的基础。通过本文的表格和说明,你可以快速查询并理解各种运算符的执行顺序。建议将本文收藏,以便在需要时随时查阅。

© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号