入门客AI创业平台(我带你入门,你带我飞行)
博文笔记

C++ 运算符优先级和结合性(MSDN)

创建时间:2007-11-17 投稿人: 浏览次数:1468
 





The C++ language includes all C operators and adds several new operators. Operators specify an evaluation to be performed on one of the following:

·         One operand (unary operator)

·         Two operands (binary operator)

·         Three operands (ternary operator)

Operators follow a strict precedence, which defines the evaluation order of expressions containing these operators. Operators associate with either the expression on their left or the expression on their right; this is called "associativity." The following table shows the precedence and associativity of C++ operators (from highest to lowest precedence). Operators in the same segment of the table have equal precedence and are evaluated in the given order in an expression unless explicitly forced by parentheses.

C++ Operator Precedence and Associativity

Operator

Name or Meaning

Associativity

::

Scope resolution

None

.

–>

[ ]

( )

( )

++

––

typeid( )

const_cast

dynamic_cast

reinterpret_cast

static_cast

Member selection (object)

Member selection (pointer)

Array subscript

Function call

member initialization

Postfix increment

Postfix decrement

type name

Type cast (conversion)

Type cast (conversion)

Type cast (conversion)

Type cast (conversion)

Left to right

Left to right

Left to right

Left to right

Left to right

Left to right

Left to right

Left to right

Left to right

Left to right

Left to right

Left to right

Sizeof

++

––

~

!

+

&

*

New

Delete

()

Size of object or type

Prefix increment

Prefix decrement

One"s complement

Logical not

Unary minus

Unary plus

Address-of

Indirection

Create object

Destroy object

Cast

Right to left

Right to left

Right to left

Right to left

Right to left

Right to left

Right to left

Right to left

Right to left

Right to left

Right to left

Right to left

.*

–>*

Pointer-to-member (objects)

Pointer-to-member (pointers)

Left to right

Left to right

*

/

%

Multiplication

Division

Modulus

Left to right

Left to right

Left to right

+

Addition

Subtraction

Left to right

Left to right

<<

 

>>

 

Left shift

Right shift

Left to right

Left to right

<

 

>

 

<=

>=

Less than

Greater than

Less than or equal to

Greater than or equal to

Left to right

Left to right

Left to right

Left to right

==

!=

Equality

Inequality

Left to right

Left to right

&

Bitwise AND

Left to right

^

Bitwise exclusive OR

Left to right

|

Bitwise inclusive OR

Left to right

&&

Logical AND

Left to right

||

Logical OR

Left to right

e1?e2:e3

Conditional

Right to left

=

*=

/=

%=

+=

–=

<<=

>>=

&=

|=

^=

Assignment

Multiplication assignment

Division assignment

Modulus assignment

Addition assignment

Subtraction assignment

Left-shift assignment

Right-shift assignment

Bitwise AND assignment

Bitwise inclusive OR assignment

Bitwise exclusive OR assignment

Right to left

Right to left

Right to left

Right to left

Right to left

Right to left

Right to left

Right to left

Right to left

Right to left

Right to left

throw expr

throw expression

Right to left

,

Comma

Left to right

 

声明:该文观点仅代表作者本人,入门客AI创业平台信息发布平台仅提供信息存储空间服务,如有疑问请联系rumenke@qq.com。
  • 上一篇:没有了
  • 下一篇:没有了
未上传头像