深圳幻海软件技术有限公司 欢迎您!

C和C++运算符优先级

2023-03-25

C语言运算符优先级表(按照优先级递减的顺序从上到下排列)C运算符类型类型()括号(函数调用运算符)[]数组下标.通过对象选择成员(直接引用)->通过指针选择成员(间接引用)++一元后置递增--一元后置递减从左向右++一元前缀递增--一元前缀递减+一元正-一元负!一元逻辑非~一元按位取补(类型)

C 语言运算符优先级表 (按照优先级递减的顺序从上到下排列)

C 运算符类型类型
() 括号(函数调用运算符)
[] 数组下标
. 通过对象选择成员(直接引用)
-> 通过指针选择成员(间接引用)
++ 一元后置递增
-- 一元后置递减
从左向右
++ 一元前缀递增
-- 一元前缀递减
+ 一元正
- 一元负
! 一元逻辑非
~ 一元按位取补
(类型) C 风格的一元强制类型转换
* 解引用
& 取地址
一元运算符从右向左
*
/
% 取模
乘法类运算符从左向右
+
-
加法类运算符从左向右
<< 按位左移
>> 按位右移
移位类运算符从左向右
<小于
<= 小于等于
> 大于
>= 大于等于
关系类运算符从左向右
== 关系等于
!= 关系不等于
相等类运算符从左到右
& 按位与位运算符从左向右
^ 按位异或位运算符从左向右
`` 按位同或位运算符
&& 按位与按位与运算符从左向右
`` 按位或
?: 三元条件运算三元条件运算符从右向左
= 赋值
+= 加赋值
-= 减赋值
*= 乘赋值
/= 除赋值
%= 取模赋值
&= 按位与赋值
^= 按位异或赋值
`
= 按位同或赋值<br /><<= 按位左移赋值<br />>>=` 按位右移赋值赋值运算符
, 逗号逗号运算符从左向右

C++ 语言运算符优先级表 (按照优先级递减的顺序从上到下排列)

C++ 运算符类型类型
:: 二元作用域
:: 一元作用域
作用域运算符从左向右
() 括号(函数调用运算符)
[] 数组下标
. 通过对象选择成员
-> 通过指针选择成员
++ 一元后置递增
-- 一元后置递减
typeid 运行时类型信息
dynamic_cast<type> 运行时类型检查的强制类型转换
static_case<type> 编译时类型检查的强制类型转换
reinterpret_case<type> 非标准转换的强制类型转换
const_cast<type> 对常量进行强制类型转换
++ 一元前缀递增
-- 一元前缀递减
+ 一元正
- 一元负
! 一元逻辑非
~ 一元按位取补
(类型) C 风格的一元强制类型转换
sizeof 按字节确定大小
* 解引用
& 取地址
new 动态内存分配
new[] 动态数组分配
delete 动态内存释放
delete[] 动态数组释放
一元运算符从左向右










从右向左












. * 通过对象指向成员的指针
-> * 通过指针指向成员的指针
指针类运算符从左向右
*
/
% 取模
乘法类运算符从左向右
+
-
加法类运算符从左向右
<< 按位左移
>> 按位右移
移位类运算符从左向右
<小于
<= 小于等于
> 大于
>= 大于等于
关系类运算符从左向右
== 关系等于
!= 关系不等于
相等类运算符从左到右
& 按位与
^ 按位异或
位运算符从左向右
`` 按位同或位运算符
&& 按位与按位与运算符从左向右
`` 按位或
?: 三元条件运算三元条件运算符从右向左
= 赋值
+= 加赋值
-= 减赋值
*= 乘赋值
/= 除赋值
%= 取模赋值
&= 按位与赋值
^= 按位异或赋值
`
= 按位同或赋值<br /><<= 按位左移赋值<br />>>=` 按位右移赋值赋值运算符
, 逗号
文章知识点与官方知识档案匹配,可进一步学习相关知识
C技能树运算符与表达式运算符优先级与求值顺序134650 人正在系统学习中