Neste tutorial, você aprenderá sobre a precedência e associatividade de operadores com a ajuda de exemplos.
Precedência de operadores
A precedência dos operadores determina qual operador é executado primeiro se houver mais de um operador em uma expressão.
Vamos considerar um exemplo:
 int x = 5 - 17* 6;
Em C, a precedência de *é maior do que -e =. Portanto, 17 * 6é avaliado primeiro. Em seguida, a expressão envolvendo -é avaliada como a precedência de -é maior do que a de =.
Aqui está uma tabela de precedência de operadores de cima para baixo. A propriedade da associatividade será discutida 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 membro Seleção direta de membro  |  Da esquerda para direita | 
| ! ~ + - ++ - & * sizeof (tipo)  |  Negação lógica Bitwise (1's) complemento Unário mais Unário menos Incremento Decremento Desreferência (endereço) Referência de ponteiro Retorna o tamanho de um objeto Typecast (conversão)  |  Direita para esquerda | 
| * / %  |  Multiply Divide Remainder  |  Da esquerda para direita | 
| + -  |  Binário mais (adição) Binário menos (subtração)  |  Da esquerda para direita | 
| << >>  |  Shift esquerdo shift direito  |  Da esquerda para direita | 
| < <= > > =  |  Menor que menor ou igual maior que maior ou igual  |  Da esquerda para direita | 
| == ! =  |  Igual a Diferente de  |  Da esquerda para direita | 
| E | E bit a bit | Da esquerda para direita | 
| ^ | OR exclusivo bit a bit | Da esquerda para direita | 
| | | OR bit a bit | Da esquerda para direita | 
| && | E lógico | Da esquerda para direita | 
| || | OR lógico | Da esquerda para direita | 
| ?: | Operador Condicional | Direita para esquerda | 
| = * = / = % = + = - = & = = | = << = >> =  |  Atribuição simples Atribuir produto Atribuir quociente Atribuir resto Atribuir soma Atribuir diferença Atribuir bit a bit E Atribuir XOR bit a bit Atribuir bit a bit OU Atribuir deslocamento à esquerda Atribuir deslocamento à direita  |  Direita para esquerda | 
| , | Separador de expressões | Da esquerda para direita | 
Associatividade de Operadores
A associatividade dos operadores determina a direção em que uma expressão é avaliada. Por exemplo,
 b = a;
Aqui, o valor de a é atribuído a b, e não o contrário. É porque a associatividade do =operador é 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 em que eles são executados.
Vamos considerar um exemplo:
1 == 2! = 3
Aqui, os operadores ==e !=têm a mesma precedência. E, sua associatividade é da esquerda para a direita. Portanto, 1 == 2é executado primeiro.
A expressão acima é equivalente a:
(1 == 2)! = 3
Nota: Se uma instrução tiver vários operadores, você pode usar parênteses ()para tornar o código mais legível.








