Operadores em C e C++
Origem: Wikipédia, a enciclopédia livre.
Esta é uma lista de operadores nas linguagens C e C++. Todos os operadores presentes existem em C++; uma terceira coluna indica se um operador também está presente em C.
C++ também contém os operadores para conversão de tipos de dados const_cast, static_cast, dynamic_cast, e reinterpret_cast, que não estão listados na tabela.
Índice |
[editar] Precedência de operadores
A seguir é listada a ordem de precedência e associatividade dos operadores. Elementos na mesma linha são calculados com a mesma precedência, de acordo com a direção dada.
Operadores | Descrição | Associatividade |
()
|
Parênteses (agrupamento) Elemento de arranjo |
esquerda para direita |
++ --
|
Incremento e decremento prefixo/pósfixo Adição e subtração unária |
direita para esquerda |
* / % |
Multiplicação, divisão, e módulo | esquerda para direita |
+ - |
Adição e subtração | |
<< >> |
Movimentação de bits para a esquerda e direita | |
< <=
|
“menor que” e “menor ou igual que” “maior que” e “maior ou igual que” |
|
== != |
“Igual à” e “diferente de ” | |
& |
E para bits | |
^ |
Ou exclusivo para bits | |
| |
Ou para bits | |
&& |
E lógico | |
|| |
Ou lógico | |
c?t:f |
Condição ternária | direita para esquerda |
=
|
Igual a Igual a por adição ou subtração |
|
, |
Vírgula | esquerda para direita |
[editar] Tabela
[editar] Operadores aritméticos |
|||
Operador | Sintaxe | É sobrecarregável? | Presente em C? |
---|---|---|---|
Adição unária | +a | Sim. | Sim. |
Adição | a + b | Sim. | Sim. |
Incremento pre-fixado | ++a | Sim. | Sim. |
Incremento pós-fixado | a++ | Sim. | Sim. |
Igual a por adição | a += b | Sim. | Sim. |
Subtração unária | -a | Sim. | Sim. |
Subtração | a - b | Sim. | Sim. |
Decremento pré-fixado | --a | Sim. | Sim. |
Decremento pós-fixado | a-- | Sim. | Sim. |
Igual a por subtração | a -= b | Sim. | Sim. |
Multiplicação | a * b | Sim. | Sim. |
Igual a por multiplicação | a *= b | Sim. | Sim. |
Divisão | a / b | Sim. | Sim. |
Igual a por divisão | a /= b | Sim. | Sim. |
Resto | a % b | Sim. | Sim. |
Igual a por resto | a %= b | Sim. | Sim. |
[editar] Operadores comparativos |
|||
Operador | Sintaxe | É sobrecarregável? | Presente em C? |
Menor que | a < b | Sim. | Sim. |
Menor ou igual que | a <= b | Sim. | Sim. |
Maior que | a > b | Sim. | Sim. |
Maior ou igual que | a >= b | Sim. | Sim. |
Diferente de | a != b | Sim. | Sim. |
Igual a | a == b | Sim. | Sim. |
Não lógico | !a | Sim. | Sim. |
E lógico | a && b | Sim. | Sim. |
Ou lógico | a || b | Sim. | Sim. |
[editar] Operadores de movimentação de bits |
|||
Operador | Sintaxe | É sobrecarregável? | Presente em C? |
Movimentação para esquerda | a << b | Sim. | Sim. |
Igual a por movimentação para esquerda | a <<= b | Sim. | Sim. |
Movimentação para direita | a >> b | Sim. | Sim. |
Igual a por movimentação para direita | a >>= b | Sim. | Sim. |
[editar] Operadores lógicos sobre bits |
|||
Operador | Sintaxe | É sobrecarregável? | Presente em C? |
Complemento | ~a | Sim. | Sim. |
E | a & b | Sim. | Sim. |
Igual a por e | a &= b | Sim. | Sim. |
Ou | a | b | Sim. | Sim. |
Igual a por ou | a |= b | Sim. | Sim. |
Ou exclusivo | a ^ b | Sim. | Sim. |
Igual a por ou exclusivo | a ^= b | Sim. | Sim. |
[editar] Outros operadores |
|||
Operador | Sintaxe | É sobrecarregável? | Presente em C? |
Igual a | a = b | Sim. | Sim. |
Chamada de função | a() | Sim. | Sim. |
Elemento de arranjo | a[] | Sim. | Sim. |
Derreferência | *a | Sim. | Sim. |
Referência | &a | Sim. | Sim. |
Membro de ponteiro | a->b | Sim. | Sim. |
Membro de identificador | a.b | Não. | Sim. |
De-referência de membro de identificador | a.*b | Não. | Não |
De-referência de membro de ponteiro | a->*b | Sim. | Não. |
Conversão de tipo de dados | (type) a | Sim. | Sim. |
Vírgula | a , b | Sim. | Sim. |
Condição ternária | a ? b : c | Não. | Sim. |
Resolução de escopo | a :: b | Não. | Não. |
Tamanho de | sizeof a | Não. | Sim. |
Identificador de tipo | typeid (type) | Não. | Não. |