IT博客汇
  • 首页
  • 精华
  • 技术
  • 设计
  • 资讯
  • 扯淡
  • 权利声明
  • 登录 注册

    [转]C++ Built-in Operators, Precedence and Associativity

    caimouse发表于 2016-09-14 11:39:16
    love 0

    The C++ language includes all C operators and adds several new operators. Operators specify an evaluation to be performed on one or more operands.

    Operator precedence specifies the order of operations in expressions that contain more than one operator. Operator associativity specifies whether, in an expression that contains multiple operators with the same precedence, an operand is grouped with the one on its left or the one on its right. The following table shows the precedence and associativity of C++ operators (from highest to lowest precedence). Operators with the same precedence number have equal precedence unless another relationship is explicitly forced by parentheses.

    C++ Operator Precedence and Associativity

    Operator Description

    Operator

    Group 1 precedence, no associativity

    Scope resolution

    ::

    Group 2 precedence, left to right associativity

    Member selection (object or pointer)

    . or –>

    Array subscript

    [ ]

    Function call

    ( )

    Postfix increment

    ++

    Postfix decrement

    ––

    Type name

    typeid( )

    Constant type conversion

    const_cast

    Dynamic type conversion

    dynamic_cast

    Reinterpreted type conversion

    reinterpret_cast

    Static type conversion

    static_cast

    Group 3 precedence, right to left associativity

    Size of object or type

    sizeof

    Prefix increment

    ++

    Prefix decrement

    ––

    One's complement

    ~

    Logical not

    !

    Unary negation

    -

    Unary plus

    +

    Address-of

    &

    Indirection

    *

    Create object

    new

    Destroy object

    delete

    Cast

    Cast: ()

    Group 4 precedence, left to right associativity

    Pointer-to-member (objects or pointers)

    .* or –>*

    Group 5 precedence, left to right associativity

    Multiplication

    *

    Division

    /

    Modulus

    %

    Group 6 precedence, left to right associativity

    Addition

    +

    Subtraction

    –

    Group 7 precedence, left to right associativity

    Left shift

    <<

    Right shift

    >>

    Group 8 precedence, left to right associativity

    Less than

    <

    Greater than

    >

    Less than or equal to

    <=

    Greater than or equal to

    >=

    Group 9 precedence, left to right associativity

    Equality

    ==

    Inequality

    !=

    Group 10 precedence left to right associativity

    Bitwise AND

    &

    Group 11 precedence, left to right associativity

    Bitwise exclusive OR

    ^

    Group 12 precedence, left to right associativity

    Bitwise inclusive OR

    |

    Group 13 precedence, left to right associativity

    Logical AND

    &&

    Group 14 precedence, left to right associativity

    Logical OR

    ||

    Group 15 precedence, right to left associativity

    Conditional

    ? :

    Group 16 precedence, right to left associativity

    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

    ^=

    Group 17 precedence, right to left associativity

    throw expression 

    throw 

    Group 18 precedence, left to right associativity

    Comma

    ,

    See Also



沪ICP备19023445号-2号
友情链接