Precedência dos operadores C
De cppreference.com
A tabela a seguir mostra a precedência e a associatividade dos operadores C. Os operadores estão listados de cima para baixo em ordem descendente de precedência.
Original:
The following table lists the precedence and associativity of C operators. Operators are listed top to bottom, in descending precedence.
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
You can help to correct and verify the translation. Click here for instructions.
| Precedência | Operador | Descrição | Associatividade |
|---|---|---|---|
| 1 | ++ --
|
Incremento e decremento por sufixo | Esquerda-para-direita |
()
|
Chamada de função | ||
[]
|
Subscritos de array | ||
.
|
Acesso a membro de struct e união | ||
−>
|
Acesso a membro de struct e união com ponteiro | ||
(tipo){lista}
|
Literal composto(C99) | ||
| 2 | ++ --
|
Incremento e decremento por prefixo | Direita-para-esquerda |
+ −
|
Mais e menos unário | ||
! ~
|
NOT lógico e NOT bit a bit | ||
(type)
|
Conversão de tipo | ||
*
|
Indireção (desreferência) | ||
&
|
Endereço-de | ||
sizeof
|
Tamanho-de | ||
_Alignof
|
Requisito de alinhamento(C11) | ||
| 3 | * / %
|
Multiplicação, divisão e resto | Esquerda-para-direita |
| 4 | + −
|
Adição e subtração | |
| 5 | << >>
|
Deslocamento à esquerda e à direita bit-a-bit | |
| 6 | < <=
|
Para operadores relacionais s < e ≤ respectivamente | |
> >=
|
Para operadores relacionais > e ≥ respectivamente | ||
| 7 | == !=
|
Para operadores relacionais = e ≠ respectivamente | |
| 8 | &
|
AND bit-a-bit | |
| 9 | ^
|
XOR bit-a-bit (OR exclusivo) | |
| 10 | |
|
OR bit-a-bit (OR inclusivo) | |
| 11 | &&
|
AND lógico | |
| 12 | ||
|
OR lógico | |
| 13 | ?:
|
Condicional ternário | Direita-para-esquerda |
| 14 | =
|
Atribuição simples | |
+= −=
|
Atribuição por soma e diferença | ||
*= /= %=
|
Atribuição por produto, quociente e resto | ||
<<= >>=
|
Atribuição por deslocamento bit-a-bit à esquerda e à direita | ||
&= ^= |=
|
Atribuição por AND, XOR e OR bit-a-bit | ||
| 15 | ,
|
Vírgula | Esquerda-para-direita |
Ao analisar uma expressão, um operador listado em uma determinada linha será vinculado mais fortemente (como se estivesse entre parênteses) aos seus argumentos do que qualquer operador listado em uma linha abaixo.
Original:
When parsing an expression, an operator which is listed on some row will be bound tighter (as if by parentheses) to its arguments than any operator that is listed on a row further below it.
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
You can help to correct and verify the translation. Click here for instructions.
Operadores que estão na mesma célula (pode haver várias linhas de operadores listados em uma célula) têm a mesma precedência e são agrupados em determinada direção. Por exemplo, a expressão
a=b=c é analisado como a=(b=c), e não como (a=b)=c devido a direita para a esquerda associatividade. Note-se que isto não afecta a ordem de avaliação das subexpressões a, b, e c.Original:
Operators that are in the same cell (there may be several rows of operators listed in a cell) have the same precedence and are grouped in the given direction. For example, the expression
a=b=c is parsed as a=(b=c), and not as (a=b)=c because of right-to-left associativity. Note that this does not affect the ordem de avaliação of the subexpressions a, b, and c.The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
You can help to correct and verify the translation. Click here for instructions.
Original:
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
You can help to correct and verify the translation. Click here for instructions.