运算符优先级详解
来源:互联网 发布:c语言转汇编 编辑:程序博客网 时间:2024/05/16 09:12
下表列出了C++运算符的优先级和结合性。从上到下,运算符的优先级下降.
::
作用域解析从左到右++
--
后缀 自增、自减()
函数调用[]
数组下标.
通过引用选择成员−>
通过指针选择成员++
--
前缀 自增、自减从右到左+
−
正、负!
~
逻辑非、按位非(type)
显式类型转换*
解引用&
取地址sizeof
取对象大小new
, new[]
动态内存分配delete
, delete[]
动态内存去分配.*
->*
成员指针运算符从左到右*
/
%
乘、除、求余+
−
加、减<<
>>
按位左移、按位右移<
<=
小于、小于或等于>
>=
大于、大于或等于==
!=
等于、不等于&
按位与^
按位异或|
按位或&&
逻辑与||
逻辑或?:
三目运算符从右到左=
赋值+=
−=
加法/减法赋值运算符*=
/=
%=
乘法/除法/取余赋值运算符<<=
>>=
按位左移/右移赋值运算符&=
^=
|=
按位与/异或/或赋值运算符throw
抛出异常,
逗号从左到右解析表达式时,操作员是列出的一些行会的约束更严格的(如果用括号),其参数比任何操作上列出它下面的一排。例如,表达式std::cout<<a&b和*p++被解析为(std::cout<<a)&b*(p++),而不是作为std::cout<<(a&b)或(*p)++.
在同一单元中列出的运算符,求值时在给定的方向上具有相同的优先级。例如,表达式a=b=c被解析为a=(b=c),而不是(a=b)=c,因为从右到左的结合性.
运算符的优先级不受重载的影响。
注释
标准本身并没有指定优先级。它们从语法派生。
const_cast,static_cast,dynamic_cast,reinterpret_cast和typeid不包括在内,因为它们永远不会有歧义.....
一些运算符有替代拼写方式(例如,and
&&
,or||
,not!
等).
另请参阅
求值的顺序运行时运算符参数
自减算术逻辑比较成员访问其他
a = b
a += b
a -= b
a *= b
a /= b
a %= b
a &= b
a |= b
a ^= b
a <<= b
a >>= b
++a
--a
a++
a--
+a
-a
a + b
a - b
a * b
a / b
a % b
~a
a & b
a | b
a ^ b
a << b
a >> b
!a
a && b
a || b
a == b
a != b
a < b
a > b
a <= b
a >= b
a[b]
*a
&a
a->b
a.b
a->*b
a.*b
a(...)
a, b
? :
static_cast 将一个类型转换为另一个相关类型
dynamic_cast 在继承层次中进行转换
const_cast 添加或移除 cv 限定符
reinterpret_cast 将类型转换为无关的类型
C 风格的强制转换通过混合 static_cast
、const_cast
和 reinterpret_cast
将一个类型转换为另一个类型
new 分配内存
delete 回收内存
sizeof 查询类型的大小
sizeof... 查询形参包的大小(C++11 起)
typeid 查询类型的类型信息
noexcept 检查表达式是否会抛出异常(C++11 起)
alignof 查询类型的对齐要求(C++11 起)
阅读全文
0 0
- 运算符优先级详解
- C语言运算符优先级详解
- c 中运算符详解及其优先级
- C\C++中的运算符优先级详解
- 函数声明和运算符优先级详解
- C语言运算符优先级列表详解
- Java运算符详解及其优先级
- 运算符优先级-C++运算符优先级
- 运算符优先级-Java 运算符优先级
- 运算符优先级-Python 运算符优先级
- 运算符优先级-PHP运算符优先级
- Python的条件语句与运算符优先级详解(2)
- 运算符优先级
- c 运算符 优先级
- JScript 运算符优先级
- C++运算符优先级
- c 运算符 优先级
- c++运算符优先级
- 单向链表
- Android_图片加载框架---ImageLoader
- php常用函数(数组)
- 每个人都能做的网易云音乐[vue全家桶]
- CillyB盖房子 QDU
- 运算符优先级详解
- 网络编程下关于服务器模型的总结
- 偏序集相关定理
- 如何选择一个技术解决方案
- thinkphp3.2 layout 模板布局 路径问题
- Java list.romve方法bug
- jquery换一批的写法
- vue2.0之axios使用详解(一)
- wordpress日常优化