您的位置:首页 > 编程语言 > C语言/C++

C++运算符优先级

2012-03-21 18:42 232 查看
运算符优先级:

域名解析符最高;

然后是前置增量符/前置减量符/括号/数组下标/指针访问符;

单目运算符比双目运算符高;

算术双目比其它双目高;

位运算高于关系运算;

关系运算高于按位运算(&, |, ^);

按位运算高于逻辑运算;

三目的只有一个条件运算(?:),低于逻辑运算

赋值运算仅比 , (顺序运算)高

PrecedenceOperatorDescriptionAssociativity
1
::
Scope resolutionLeft-to-right
2
++
--
Suffix/postfix increment and decrement
()
Function call
[]
Array subscripting
.
Element selection by reference
->
Element selection through pointer
typeid()
Run-time type information (see typeid)
const_cast
Type cast (see const_cast)
dynamic_cast
Type cast (see dynamic_cast)
reinterpret_cast
Type cast (see reinterpret_cast)
static_cast
Type cast (see static_cast)
3
++
--
Prefix increment and decrementRight-to-left
+
-
Unary plus and minus
!
~
Logical NOT and bitwise NOT
(type)
Type cast
*
Indirection (dereference)
&
Address-of
sizeof
Size-of
new
,
new[]
Dynamic memory allocation
delete
,
delete[]
Dynamic memory deallocation
4
.*
->*
Pointer to memberLeft-to-right
5
*
/
%
Multiplication, division, and remainder
6
+
-
Addition and subtraction
7
<<
>>
Bitwise left shift and right shift
8
<
<=
For relational operators < and ≤ respectively
>
>=
For relational operators > and ≥ respectively
9
==
!=
For relational = and ≠ respectively
10
&
Bitwise AND
11
^
Bitwise XOR (exclusive or)
12
|
Bitwise OR (inclusive or)
13
&&
Logical AND
14
||
Logical OR
15
?:
Ternary conditionalRight-to-Left
16
=
Direct assignment (provided by default for C++ classes)
+=
-=
Assignment by sum and difference
*=
/=
%=
Assignment by product, quotient, and remainder
<<=
>>=
Assignment by bitwise left shift and right shift
&=
^=
|=
Assignment by bitwise AND, XOR, and OR
17
throw
Throw operator (exceptions throwing)
18
,
CommaLeft-to-right
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: