|
Vista geral dos operadores de C
|
|
Os operadores de C caem nas seguintes categorias:
- Sufixar os operadores, que seguem um único operando somente.
- Operadores de prefixo Unary, que precedem com um único operando.
- Operadores binários, que fazem exame de dois operandos e executam uma variedade de operações lógicas e aritméticas.
- O operador condicional (um operador ternário), que faz exame de três operandos e avalía a segunda ou terceira expressão, dependendo da avaliação da primeira expressão somente.
- Operadores de atribuição, que atribuem somente um valor a uma variável.
- O operador da vírgula, que dá a garantias a avaliação left-to-right de expressões vírgula-separadas.
|
|
Para criar umas expressões mais complexas, as variáveis e as constantes podem ser usadas conjuntamente com operadores de C. As seguintes tabelas descrevem os operadores diferentes disponíveis em c
|
| Operador |
Exemplo |
Descrição/Meaning |
| () |
f () |
Ligação de controle |
| [] |
a [10] |
Referência da disposição |
| -> |
|
Seleção do membro da estrutura e de união |
| . |
s.a |
Seleção do membro da estrutura e de união |
| + [unary] |
+a |
Valor de a |
| - [unary] |
- a |
Negativo de a |
| * [unary] |
*a |
Referência ao objeto no endereço a |
| & [unary] |
&a |
Endereço de a |
| ~ |
~a |
One complemento de a |
| ++ [prefixo] |
++a |
O valor de a após o incremento |
| ++ [sufixo] |
a++ |
O valor de a antes do incremento |
| -- [prefixo] |
- a |
O valor de a após o decréscimo |
| -- [sufixo] |
a |
O valor de a antes do decréscimo |
| sizeof |
sizeof (T1) |
Tamanho nos bytes do objeto com tipo T1 |
| sizeof |
sizeof e |
Tamanho nos bytes do objeto que tem o tipo da expressão e |
+ [binário] - [binário] * [binário]
/ % |
a + b a - b a * b a/b a % b |
a mais b a menos b épocas b dividido por b Restante de a/b |
>>
<< |
a >> b a << b |
a, bocados direito-deslocados de b a, bocados esquerdo-deslocados de b |
<
>
<=
>=
==
!= |
a < b a > b a <= b a >= b a == b a! = b |
1 se a < b; 0 de outra maneira 1 se a > b; 0 de outra maneira 1 se a <= b; 0 de outra maneira 1 se a >= b; 0 de outra maneira 1 se a igual a b; 0 de outra maneira 1 se a nao igual a b; 0 de outra maneira |
& [binário]
|
^ |
a & b a | b a ^ b |
Bitwise E de a e de b Bitwise OU de a e de b Bitwise XOR (exclusive OU) de a e de b |
&&
||
! |
a && b a || b ! a |
Lógico E de a e de b (rendimentos 0 ou 1) Lógico OU de a e de b (rendimentos 0 ou 1) Lógico NÃO de a (rendimentos 0 ou 1) |
| ?: |
a? e1: e2 |
Expressão e1 se a for nonzero; Expressão e2 se a for zero |
=
+=
-=
*=
/=
%=
>>=
<<= &=
|=
^=
, |
a = b a += b a - = b a *= b a/= b a %= b a >>= b a <<= b a &= b a |= b a ^= b e1, e2 |
a, após b é-lhe atribuído a mais b (atribuído a a) a menos b (atribuído a a) épocas b (atribuídas a a) dividido por b (atribuído a a) Restante de a/b (atribuído a a) a, bocados direito-deslocados de b (atribuídos a a) a, bocados esquerdo-deslocados de b (atribuídos a a) a E b (atribuídos a a) a OU b (atribuído a a) a XOR b (atribuído a a) e2 (e1 avaliado primeiramente) |
|
| Precedência de operadores de C
|
| Categoria |
Operador |
Associativity |
| Postfix |
() [] -> . ++ - - |
Esquerda à direita |
| Unary |
+ -! ~ ++ -- (tipo) * & sizeof |
Direito à esquerda |
| Multiplicative |
* / % |
Esquerda à direita |
| Additive |
+ - |
Esquerda à direita |
| Shift |
<< >> |
Esquerda à direita |
| Relational |
< <= > >= |
Esquerda à direita |
| Equality |
== != |
Esquerda à direita |
| Bitwise AND |
& |
Esquerda à direita |
| Bitwise XOR |
^ |
Esquerda à direita |
| Bitwise OR |
| |
Esquerda à direita |
| Logical AND |
&& |
Esquerda à direita |
| Logical OR |
|| |
Esquerda à direita |
| Conditional |
?: |
Direito à esquerda |
| Assignment |
= += - = |= do ^= do &= do <<= do >>= do *=/= %= |
Direito à esquerda |
| Comma |
, |
Esquerda à direita |
|
Keywords:
c operators,
c programming operators,
c bitwise operators,
c bit operators,
c language operators,
c binary operators,
c operator,
c++ operators'
'
operator in c,
c operator precedence,
operators in c,
operators c,
bitwise operators in c,
c# operators
|