Compartilhar via


Operadores, precedência e associatividade C++

A linguagem C++ inclui todos os operadores C e adiciona vários operadores novos. Os operadores especificam uma avaliação a ser executada em um ou mais operandos.

A precedência do operador especifica a ordem das operações em expressões que contêm mais de um operador. A associatividade do operador especifica se, em uma expressão que contém vários operadores com a mesma precedência, um operando é agrupado com aquela à sua esquerda ou com aquela à sua direita. A tabela a seguir mostra a precedência e a associatividade dos operadores C++ (da precedência mais alta a mais baixa). Os operadores com o mesmo número de precedência têm igual precedência, a menos que outra relação seja explicitamente forçada por parênteses.

Associatividade e precedência do operador C++

Descrição do operador

Group 1 precedence, no associativity

Resolução do escopo

Group 2 precedence, left to right associativity

Seleção de membro (objeto ou ponteiro)

Subscrito de matriz

Chamada de função

Incremento de sufixo

Decremento de sufixo

Nome de tipo

Conversão de tipo constante

Conversão de tipo dinâmico

Conversão de tipo reinterpretado

Conversão de tipo estático

Group 3 precedence, right to left associativity

Tamanho do objeto ou tipo

Incremento de prefixo

Decremento de prefixo

Complemento de um

Não lógico

Negação unária

Adição unária

Address-of

Indireção

Objeto Create

Objeto Destroy

Conversão

Group 4 precedence, left to right associativity

Ponteiro para membro (objetos ou ponteiros)

Group 5 precedence, left to right associativity

Multiplicação

Divisão

Módulo

Group 6 precedence, left to right associativity

Adição

Subtração

Group 7 precedence, left to right associativity

Shift esquerda

Shift direita

Group 8 precedence, left to right associativity

Menor que

Maior que

Menor que ou igual a

Maior que ou igual a

Group 9 precedence, left to right associativity

Igualdade

Desigualdade

Group 10 precedence left to right associativity

AND bit a bit

Group 11 precedence, left to right associativity

OR exclusivo de bit a bit

Group 12 precedence, left to right associativity

OR inclusivo de bit a bit

Group 13 precedence, left to right associativity

AND lógico

Group 14 precedence, left to right associativity

OR lógico

Group 15 precedence, right to left associativity

Condicional

Group 16 precedence, right to left associativity

Atribuição

Atribuição de multiplicação

Atribuição de divisão

Atribuição de módulo

Atribuição de adição

Atribuição de subtração

Atribuição de shift esquerda

Atribuição de shift direita

Atribuição AND de bit a bit

Atribuição OR inclusivo de bit a bit

Atribuição OR exclusivo de bit a bit

Group 17 precedence, right to left associativity

expressão de lançamento

Group 18 precedence, left to right associativity

Vírgula

Consulte também

Referência

Operadores C++

Sobrecarga de operador