Precedência e associatividade de operadores
A linguagem C++ inclui todos os operadores c e adiciona vários novos operadores.Os operadores especificam uma avaliação para ser executada em um destes procedimentos:
Um operando (operador unário)
Dois operandos (operador binário)
Três operandos (operador Ternário)
Operadores siga uma estrita precedência, que define a ordem de avaliação de expressões que contenham esses operadores.Operadores de associar a expressão à sua esquerda ou a expressão na sua direita; Isso é chamado de "associação". A tabela a seguir mostra a precedência e associatividade de operadores do C++ (da mais alta para a mais baixa).Operadores no mesmo segmento da tabela têm a mesma precedência e são avaliadas na ordem determinada em uma expressão, a menos que explicitamente forçada por parênteses.
C++ precedência e associatividade de operadores
Operador |
Nome ou o significado |
Associatividade |
---|---|---|
:: |
Resolução de escopo |
Nenhum |
|
|
|
. |
Seleção de membro (objeto) |
Esquerda para a direita |
–> |
Seleção de membro (ponteiro) |
Esquerda para a direita |
[ ] |
Subscrito da matriz |
Esquerda para a direita |
( ) |
Inicialização de membro de chamada de função |
Esquerda para a direita |
++ |
Incremento de sufixo |
Esquerda para a direita |
–– |
Decréscimo do sufixo |
Esquerda para a direita |
typeid( ) |
Digite um nome |
Esquerda para a direita |
const_cast |
Conversão de tipo (conversão) |
Esquerda para a direita |
dynamic_cast |
Conversão de tipo (conversão) |
Esquerda para a direita |
reinterpret_cast |
Conversão de tipo (conversão) |
Esquerda para a direita |
static_cast |
Conversão de tipo (conversão) |
Esquerda para a direita |
|
|
|
sizeof |
Tamanho do objeto ou tipo |
Direita para a esquerda |
++ |
Incremento de prefixo |
Direita para a esquerda |
–– |
Decréscimo de prefixo |
Direita para a esquerda |
~ |
Complemento de um |
Direita para a esquerda |
! |
Não lógico |
Direita para a esquerda |
– |
Menos unário |
Direita para a esquerda |
+ |
Mais unário |
Direita para a esquerda |
& |
Endereço de |
Direita para a esquerda |
* |
Caminho indireto |
Direita para a esquerda |
new |
Criar objeto |
Direita para a esquerda |
delete |
Destruir objeto |
Direita para a esquerda |
( ) |
Elenco |
Direita para a esquerda |
|
|
|
.* |
Ponteiro para membro (objetos) |
Esquerda para a direita |
–>* |
Ponteiro para membro (ponteiros) |
Esquerda para a direita |
|
|
|
* |
Multiplicação |
Esquerda para a direita |
/ |
Divisão |
Esquerda para a direita |
% |
MODULUS |
Esquerda para a direita |
|
|
|
+ |
Adição |
Esquerda para a direita |
– |
Subtração |
Esquerda para a direita |
|
|
|
<< |
Shift esquerda |
Esquerda para a direita |
>> |
Shift direita |
Esquerda para a direita |
|
|
|
< |
Menor que |
Esquerda para a direita |
> |
Maior que |
Esquerda para a direita |
<= |
Menor ou igual a |
Esquerda para a direita |
>= |
Maior ou igual a |
Esquerda para a direita |
|
|
|
== |
Igualdade |
Esquerda para a direita |
!= |
Desigualdade |
Esquerda para a direita |
|
|
|
& |
AND bit a bit |
Esquerda para a direita |
|
|
|
^ |
Bit a bit ou exclusivo |
Esquerda para a direita |
|
|
|
| |
BITWISE OR inclusiva |
Esquerda para a direita |
|
|
|
&& |
E lógico |
Esquerda para a direita |
|
|
|
|| |
OR lógico |
Esquerda para a direita |
|
|
|
expr1 ? expr2 : expr3 |
Condicional |
Direita para a esquerda |
|
|
|
= |
Atribuição |
Direita para a esquerda |
*= |
Atribuição de multiplicação |
Direita para a esquerda |
/= |
Atribuição de divisão |
Direita para a esquerda |
%= |
Atribuição de módulo |
Direita para a esquerda |
+= |
Atribuição de adição |
Direita para a esquerda |
–= |
Atribuição de subtração |
Direita para a esquerda |
<<= |
Atribuição de shift esquerda |
Direita para a esquerda |
>>= |
Atribuição de shift direita |
Direita para a esquerda |
&= |
Atribuição de AND bit a bit |
Direita para a esquerda |
|= |
Bit a bit inclusive atribuição de OR |
Direita para a esquerda |
^= |
Bit a bit exclusiva atribuição de OR |
Direita para a esquerda |
|
|
|
throw expr |
throw expressão |
Direita para a esquerda |
|
|
|
, |
Vírgula |
Esquerda para a direita |