博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C++ 运算符优先级列表
阅读量:4961 次
发布时间:2019-06-12

本文共 2456 字,大约阅读时间需要 8 分钟。

Precedence

Operator

Description

Example

Associativity

1

()

[]
->
.
::
++
--

Grouping operator

Array access
Member access from a pointer
Member access from an object
Scoping operator
Post-increment
Post-decrement

(a + b) / 4;

array[4] = 2;
ptr->age = 34;
obj.age = 34;
Class::age = 2;
for( i = 0; i < 10; i++ ) ...
for( i = 10; i > 0; i-- ) ...

left to right

2

!

~
++
--
-
+
*
&
(type)

Logical negation

Bitwise complement
Pre-increment
Pre-decrement
Unary minus
Unary plus
Dereference
Address of
Cast to a given type
Return size in bytes

if( !done ) ...

flags = ~flags;
for( i = 0; i < 10; ++i ) ...
for( i = 10; i > 0; --i ) ...
int i = -1;
int i = +1;
data = *ptr;
address = &obj;
int i = (int) floatNum;
int size = sizeof(floatNum);

right to left

3

->*

.*

Member pointer selector

Member pointer selector

ptr->*var = 24;

obj.*var = 24;

left to right

4

*

/
%

Multiplication

Division
Modulus

int i = 2 * 4;

float f = 10 / 3;
int rem = 4 % 3;

left to right

5

+

-

Addition

Subtraction

int i = 2 + 3;

int i = 5 - 1;

left to right

6

<<

>>

Bitwise shift left

Bitwise shift right

int flags = 33 << 1;

int flags = 33 >> 1;

left to right

7

<

<=
>
>=

Comparison less-than

Comparison less-than-or-equal-to
Comparison greater-than
Comparison geater-than-or-equal-to

if( i < 42 ) ...

if( i <= 42 ) ...
if( i > 42 ) ...
if( i >= 42 ) ...

left to right

8

==

!=

Comparison equal-to

Comparison not-equal-to

if( i == 42 ) ...

if( i != 42 ) ...

left to right

9

&

Bitwise AND

flags = flags & 42;

left to right

10

^

Bitwise exclusive OR

flags = flags ^ 42;

left to right

11

|

Bitwise inclusive (normal) OR

flags = flags | 42;

left to right

12

&&

Logical AND

if( conditionA && conditionB ) ...

left to right

13

||

Logical OR

if( conditionA || conditionB ) ...

left to right

14

? :

Ternary conditional (if-then-else)

int i = (a > b) ? a : b;

right to left

15

=

+=
-=
*=
/=
%=
&=
^=
|=
<<=
>>=

Assignment operator

Increment and assign
Decrement and assign
Multiply and assign
Divide and assign
Modulo and assign
Bitwise AND and assign
Bitwise exclusive OR and assign
Bitwise inclusive (normal) OR and assign
Bitwise shift left and assign
Bitwise shift right and assign

int a = b;

a += 3;
b -= 4;
a *= 5;
a /= 2;
a %= 3;
flags &= new_flags;
flags ^= new_flags;
flags |= new_flags;
flags <<= 2;
flags >>= 2;

right to left

16

,

Sequential evaluation operator

for( i = 0, j = 0; i < 10; i++, j++ ) ...

left to right

 

转载于:https://www.cnblogs.com/wuzhenbo/archive/2012/04/26/2470848.html

你可能感兴趣的文章
宏定义
查看>>
ubuntu12.04 串口登录系统配置
查看>>
poj3061
查看>>
linux--多进程进行文件拷贝
查看>>
笔记:git基本操作
查看>>
Gold Smith第一章
查看>>
生成php所需要的APNS Service pem证书的步骤
查看>>
JavaWeb之JSON
查看>>
URL中的特殊字符处理
查看>>
HOT SUMMER 每天都是不一样,积极的去感受生活 C#关闭IE相应的窗口 .
查看>>
windows平台上编译mongdb-cxx-driver
查看>>
optionMenu-普通菜单使用
查看>>
MVC3分页传2参
查看>>
2016-2017-2点集拓扑作业[本科生上课时]讲解视频
查看>>
appium(13)- server config
查看>>
IIS负载均衡-Application Request Route详解第六篇:使用失败请求跟踪规则来诊断ARR...
查看>>
管理信息系统 第三部分 作业
查看>>
[Leetcode Week13]Search a 2D Matrix
查看>>
查看端口占用cmd命令
查看>>
2019.01.17王苛震作业
查看>>