Compreendendo a precedência e associatividade do operador C:um guia claro
Precedência de operadores
A precedência dos operadores determina qual operador será executado primeiro se houver mais de um operador em uma expressão.
Consideremos um exemplo:
09
Em C, a precedência de06é maior que19e21. Portanto,38é avaliado primeiro. Então a expressão envolvendo47é avaliado como a precedência de55é maior que62.
Aqui está uma tabela de precedência de operadores de maior para menor. A propriedade da associatividade será discutido em breve.
Tabela de precedência e associatividade de operadores
Operador Significado do operador Associatividade ()
[]
->
.Chamada funcional
Referência de elemento de matriz
Seleção indireta de membros
Seleção direta de membrosDa esquerda para a direita!
~
+
-
++
--
&
*
tamanho de
(tipo)Negação lógica
Complemento bit a bit (1)
Unário mais
Unário menos
Incremento
Diminuir
Desreferência (Endereço)
Referência de ponteiro
Retorna o tamanho de um objeto
Typecast (conversão)Da direita para a esquerda*
/
% Multiplicar
Dividir
RestanteDa esquerda para a direita+
-Binário mais (Adição)
Binário menos (subtração) Da esquerda para a direita<<
>>Deslocamento para a esquerda
Deslocamento para a direitaDa esquerda para a direita<
<=
>
>=Menos que
Menor ou igual
Maior que
Maior ou igualDa esquerda para a direita==
!=Igual a
Diferente deLeft to right&Bitwise ANDLeft to right^Bitwise exclusivo ORLeft to right|Bitwise ORLeft to right&&Logical ANDLeft to right||Logical ORLeft to right?:Operador CondicionalRight to left=
*=
/=
%=
+=
-=
&=
^=
|=
<<=
>>=Tarefa simples
Atribuir produto
Atribuir quociente
Atribuir restante
Atribuir soma
Atribuir diferença
Atribuir AND bit a bit
Atribuir XOR bit a bit
Atribuir OR bit a bit
Atribuir deslocamento para a esquerda
Atribuir shift da direita, da direita para a esquerda, separador de expressões da esquerda para a direitaAssociatividade dos Operadores
A associatividade dos operadores determina a direção na qual uma expressão é avaliada. Por exemplo,
18
Aqui, o valor de a é atribuído a b, e não o contrário. É porque a associatividade do78operador é da direita para a esquerda.
Além disso, se dois operadores com a mesma precedência (prioridade) estiverem presentes, a associatividade determina a direção na qual eles são executados.
Consideremos um exemplo:
26
Aqui, operadores82e94 têm a mesma precedência. E a associatividade deles é da esquerda para a direita. Portanto,107é executado primeiro.
A expressão acima é equivalente a:
30
Nota: Se uma instrução tiver vários operadores, você poderá usar parênteses114para tornar o código mais legível.
Índice
Manipulação de string mestre em C com funções de biblioteca padrão Estrutura de entidade mestre:50 principais perguntas e respostas da entrevista (2026)
Linguagem C