Operadores internos, precedência e associatividade no 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.
Precedência e capacidade de associação
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 aquele à sua esquerda ou com aquele à sua direita.
Ortografias alternativas
O C++ especifica ortografias alternativas para alguns operadores. Em C, as ortografias alternativas são fornecidas como uma macro no cabeçalho <iso646.h>. Em C++, as ortografias alternativas são palavras-chaves e o uso de <iso646.h> ou do equivalente em C++ <ciso646> foi preterido. No Microsoft C++, a opção do compilador /permissive-
ou /Za
é necessária para habilitar ortografias alternativas.
Tabela de associatividade e precedência do operador C++
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.
Descrição do operador | Operador | Alternativa |
---|---|---|
Precedência do grupo 1, sem associatividade | ||
Resolução do escopo | :: |
|
Precedência do grupo 2, associatividade da esquerda para a direita | ||
Seleção de membros (objeto ou ponteiro) | . ou -> |
|
Subscrito da matriz | [] |
|
Chamada de função | () |
|
Incremento pós-fixo | ++ |
|
Decréscimo pós-fixo | -- |
|
Nome do tipo | typeid |
|
Conversão de tipo constante | const_cast |
|
Conversão dinâmica de tipos | dynamic_cast |
|
Conversão de tipo reinterpretada | reinterpret_cast |
|
Conversão de tipo estático | static_cast |
|
Precedência do grupo 3, associatividade da direita para a esquerda | ||
Tamanho do objeto ou tipo | sizeof |
|
Incremento de prefixo | ++ |
|
Decremento de prefixo | -- |
|
Complemento de um | ~ |
compl |
Expressão NOT lógica | ! |
not |
Negação unária | - |
|
Unário mais | + |
|
Endereço-de | & |
|
Indireção | * |
|
Criar objeto | new |
|
Destruir objeto | delete |
|
Converter | () |
|
Precedência do grupo 4, associatividade da esquerda para a direita | ||
Ponteiro para membro (objetos ou ponteiros) | .* ou ->* |
|
Precedência do grupo 5, associatividade da esquerda para a direita | ||
Multiplicação | * |
|
Divisão | / |
|
Módulo | % |
|
Precedência do grupo 6, associatividade da esquerda para a direita | ||
Adição | + |
|
Subtração | - |
|
Precedência do grupo 7, associatividade da esquerda para a direita | ||
Deslocamento à esquerda | << |
|
Deslocamento à direita | >> |
|
Precedência do grupo 8, associatividade da esquerda para a direita | ||
Menor que | < |
|
Maior que | > |
|
Menor ou igual a | <= |
|
Maior ou igual a | >= |
|
Precedência do grupo 9, associatividade da esquerda para a direita | ||
Igualdade | == |
|
Desigualdade | != |
not_eq |
Precedência do grupo 10, associatividade da esquerda para a direita | ||
AND bit a bit | & |
bitand |
Precedência do grupo 11, associatividade da esquerda para a direita | ||
Bitwise exclusivo OU | ^ |
xor |
Precedência do grupo 12, associatividade da esquerda para a direita | ||
Bitwise inclusive OU | | |
bitor |
Precedência do grupo 13, associatividade da esquerda para a direita | ||
AND lógico | && |
and |
Precedência do grupo 14, associatividade da esquerda para a direita | ||
OR lógico | || |
or |
Precedência do grupo 15, associatividade da direita para a esquerda | ||
Condicional | ? : |
|
Cessão | = |
|
Atribuição de multiplicação | *= |
|
Atribuição de divisão | /= |
|
Atribuição de módulos | %= |
|
Atribuição de adição | += |
|
Atribuição de subtração | -= |
|
Atribuição de deslocamento para a esquerda | <<= |
|
Atribuição de deslocamento para a direita | >>= |
|
Bitwise E atribuição | &= |
and_eq |
Atribuição OU inclusiva bit a bit | |= |
or_eq |
Atribuição OR exclusiva Bitwise | ^= |
xor_eq |
Expressão de lançamento | throw |
|
Precedência do grupo 16, associatividade da esquerda para a direita | ||
Comma | , |
Confira também
Comentários
https://aka.ms/ContentUserFeedback.
Em breve: Ao longo de 2024, eliminaremos os problemas do GitHub como o mecanismo de comentários para conteúdo e o substituiremos por um novo sistema de comentários. Para obter mais informações, consulteEnviar e exibir comentários de