首页 > 编程语言 >C++运算符优先级

C++运算符优先级

时间:2023-09-06 17:13:15浏览次数:39  
标签:类型转换 优先级 -- 含义 C++ 运算符 按位 赋值

所有(可能)运算符

共分为 18 级。

第 1 级

运算符 含义
:: 作用域解析运算符

第 2 级

运算符 含义
() 函数调用
() 值构造,即 type(expr)
[] 数组下标
-> 间接成员运算符
. 直接成员运算符
const_cast 专用的类型转换
dynamic_cast 专用的类型转换
reinterpret_cast 专用的类型转换
static_cast 专用的类型转换
typeid 类型标识
++ 加 1 运算符,后缀
-- 减 1 运算符,后缀

第 3 级

运算符 含义
! 逻辑非
~ 按位非
+ 正号
- 负号
++ 加 1 运算符,前缀
-- 减 1 运算符,前缀
& 地址
* 解除引用(间接值)
() 类型转化,即 (type)expr
sizeof() 长度,以字节为单位
new 动态分配内存
new[] 动态分配数组
delete 动态释放内存
delete[] 动态释放数组

第 4 级

运算符 含义
.* 成员解除引用
->* 间接成员解除引用

第 5 级

运算符 含义
*
/
%

第 6 级

运算符 含义
+
-

第 7 级

运算符 含义
<< 左移
>> 右移

第 8 级

运算符 含义
< 小于
<= 小于等于
>= 大于等于
> 大于

第 9 级

运算符 含义
== 等于
!= 不等于

第 10 级

运算符 含义
& 按位与

第 11 级

运算符 含义
^ 按位异或

第 12 级

运算符 含义
| 按位或

第 13 级

运算符 含义
&& 逻辑与

第 14 级

运算符 含义
|| 逻辑或

第 15 级

运算符 含义
?: 三目运算符

第 16 级

运算符 含义
= 赋值
*= 乘并赋值
/= 除并赋值
%= 模并赋值
+= 加并赋值
-= 减并赋值
&= 按位与并赋值
^= 按位异或并赋值
|= 按位或并赋值
<<= 左移并赋值
>>= 右移并赋值

第 17 级

运算符 含义
throw 引发异常

第 18 级

运算符 含义
, 将两个表达式合并成一个

重要运算符优先级

  1. 后缀 ++,--
  2. 逻辑非 !,按位非 ~,正负号,前缀 ++,--
  3. 乘,除,模。
  4. 左移右移。
  5. 小于(等于),大于(等于)。
  6. (不)等于。
  7. 按位与 &
  8. 按位异或 ^
  9. 按位或 |
  10. 逻辑与 &&
  11. 逻辑或 ||
  12. 三目运算符。
  13. 各种赋值。
  14. 合并表达式 ,

标签:类型转换,优先级,--,含义,C++,运算符,按位,赋值
From: https://www.cnblogs.com/Livingston/p/17682846.html

相关文章

  • 类的特殊方法和运算符重载
    4.4Python类的高级特性|AmosCloudWiki ......
  • c++中输出浮点数
    flata=1;flatb=3;cout<<a<endl;cout<<showpoint<<b<endl;ANSI C++里一个浮点型若是小数部分为0,直接输出必然是不带小数点的,例如floatb=3;你若想输出3.0,输出代码要这样写:cout << showpoint << a;......
  • C++中的虚函数重载
    在一次修改代码过程中踩的坑,下来研究了一下,发现C++中虚函数重载后会产生很多有意思的情况,在这里总结了一下。C++中有重载(overload)和重写(override)以及重定义这几个概念,1overload:指的是相同作用域中的两个函数的函数名相同,但参数列表的个数、顺序、类型不同。而override指的是子类......
  • C++异步框架workflow分析
    简述workflow项目地址:https://github.com/sogou/workflowworkflow是搜狗开源的一个开发框架。可以满足绝大多数日常服务器开发,性能优异,给上层业务提供了易于开发的接口,却只用了少量的代码,举重若轻,而且代码整洁干净易读。搜狗官方宣传强调,workflow是一个异步任务调度编程范式,封......
  • C++系列十:日常学习-操作符重载
    目录介绍:案例:介绍:在C++中,操作符重载(OperatorOverloading)是一种允许我们自定义或改变某些操作符的行为的技术。案例:单个参数的简单例子:#include<iostream>classMyNumber{private:doublevalue;public:MyNumber(doublev):value(v){}......
  • C++ auto用作函数参数
    c++11中auto不能用作函数参数。在gccversion8.1.0(x86_64-win32-seh-rev0,BuiltbyMinGW-W64project)--C++14中可以运行,会警告:useof'auto'inparameterdeclarationonlyavailablewith-fconcepts......
  • 《C++并发编程实战》读书笔记(4):原子变量
    1、标准原子类型标准原子类型的定义位于头文件<atomic>内。原子操作的关键用途是取代需要互斥的同步方式,但假设原子操作本身也在内部使用了互斥,就很可能无法达到期望的性能提升。有三种方法来判断一个原子类型是否属于无锁数据结构:所有标准原子类型(std::atomic_flag除外,因为它......
  • C++学习笔记
    C++:C的编译器叫gcc,C++的编译器叫g++c++最容易发生的问题是内存泄漏问题,例如释放p所指的空间时,应该是free(p);p=NULL;很多人忘记将p归零,这样下次不小心调用了p就会出现内存泄漏问题,如果要把释放内存写成函数,示例如下(两层指针)voidfree_mem(int**pp){if(pp==NULL......
  • C++中虚继承时的构造函数
    在虚继承中,虚基类是由最终的派生类初始化的,换句话说,最终派生类的构造函数必须要调用虚基类的构造函数。对最终的派生类来说,虚基类是间接基类,而不是直接基类。这跟普通继承不同,在普通继承中,派生类构造函数中只能调用直接基类的构造函数,不能调用间接基类的。下面我们以菱形继承为例来......
  • C++语言学习09
    STL标准模版库STL是StandardTemplateLibrary的缩写,中文名标准模版库,由惠普实验室提供(使用C++模板语言封装的常用的数据结构与算法)STL中有六大组件:算法:以函数模板形式实现的常用算法,例如:swap\max\min\find\sort容器:以类模板的形式实现的常用的数据结构,例如:vector\list\arra......