Vous êtes sur la page 1sur 4

Operador de igualdade

Topo | Fim

Comum maioria das linguagens, este operador (=) faz a varivel da esquerda assumir o valor da varivel, constante ou expresso da direita. Exemplo:
var = var + 2;

Portanto, o contedo de var aumentado de 2. Topo | Fim Descrio Multiplicao Diviso Resto Adio Subtrao

Operadores aritmticos

Operador * / % + Exemplo:
var = 10 % 3;

(o valor de var ser 1) Topo | Fim

Operadores relacionais

Eles avaliam o relacionamento entre duas expresses e do o resultado 1 se verdadeiro ou 0 se falso. Operador < <= > >= == != Exemplo:
var = 2; if( var>2 ) var = 3;

Descrio Menor que Menor ou igual Maior que Maior ou igual Igual Diferente

Ou seja, o valor de var continua 2. Um lapso comum confundir o operador de comparao (==) com o operador de igualdade (=). Exemplo:
var = 1; if( var=2 ) var = 3;

Topo | Fim

E o valor de var ser 3, o que certamente no era esperado. Isso ocorre porque var=2 atribui 2 a var e, desde que foi executado, a expresso retornar um valor verdadeiro para a declarao if, permitindo a execuo da linha seguinte. Portanto, o correto seria
if( var==2 )

Deve ser lembrado que, mesmo sem operadores, a linguagem C considera verdadeiro qualquer valor no nulo. Por exemplo, aps a execuo das linhas
var = 2; if( -50 ) var = 3;

o valor de var ser 3.


Operadores compostos

O operador de igualdade (=) pode ser combinado com outros para simplificar expresses. Operador a *= b a /= b a %= b a += b a -= b a <<= b a >>= b a &= b a ^= b a |= b Equivalncia a=a*b a=a/b a=a%b a=a+b a=a-b a = a << b a = a >> b a=a&b a=a^b a=a|b Descrio Multiplicao Diviso Resto Adio Subtrao Desloc esquerda Desloc direita E OU exclusivo OU inclusivo

Notar que o outro operador deve sempre ser colocado esquerda do sinal =. Alguns operadores dessa tabela sero citados mais adiante. Topo | Fim

Operadores de incremento e decremento

So dois operadores bastante teis para simplificar expresses:


++ (incremento de 1) -- (decremento de 1)

Podem ser colocados antes ou depois da varivel a modificar. Se inseridos antes, modificam o valor antes da expresso ser usada e, se inseridos depois, modificam depois do uso. Alguns exemplos:
x = 2; var = ++x;

No caso acima, o valor de var ser 3 e o de x ser 3.


x = 2; var = x++;

No caso acima, o valor de var ser 2 e o de x ser 3. Topo | Fim

Operadores de bits

Manipulam bits em valores inteiros. Nos exemplos a seguir, so considerados dados de 8 bits de valores inteiros e sem sinal.
~

(complemento)

Atuando em apenas um valor, muda os bits de valor 1 para 0 e vice-versa. Exemplo: se a varivel var tem o valor 170 (10101010), aps ~var, ela ter 85 (01010101).
<<

Topo | Fim

(deslocamento esquerda)

Desloca, para a esquerda, os bits do operando esquerdo no valor dado pelo operando direito. Equivale multiplicao pela potncia de 2 dada por este ltimo. Exemplo: se a varivel var tem o valor 3 (00000011), aps var << 2, ela ser 12 (00001100).
Operadores de bits (cont) >>

(deslocamento direita)

Desloca, para a direita, os bits do operando esquerdo no valor dado pelo operando direito. Equivale diviso pela potncia de 2 dada por este ltimo. Exemplo: se a varivel var tem o valor 12 (00001100), aps var >> 2, ter 3 (00000011).
&

(E)

Faz o valor do bit igual a 1 se ambos os bits correspondentes nos operandos so 1 e 0 nos demais casos. Exemplo: se a varivel var tem o valor 12 (00001100) e fazendo a operao com 6 (00000110), o resultado, var & 6, ser 4 (00000100).
^

(OU exclusivo)

Faz o valor do bit igual a 1 se apenas um dos bits correspondentes nos operandos 1 e 0 nos demais casos. Exemplo: se a varivel var tem o valor 12 (00001100) e fazendo a operao com 6 (00000110), o resultado, var ^ 6, ser 10 (00001010).
|

(OU inclusivo)

Faz o valor do bit igual a 1 se um ou ambos os bits correspondentes nos operandos 1 e 0 nos demais casos. Exemplo: se a varivel var tem o valor 12 (00001100) e fazendo a operao com 6 (00000110), o resultado, var | 6, ser 14 (00001110). Topo | Fim

Operadores lgicos

Usados normalmente com expresses booleanas, isto , expresses que retornam verdadeiro ou falso (1 ou 0), para fins de testes em declaraes condicionais.
&&

(E lgico)

Retorna verdadeiro se ambos os operandos so verdadeiros e falso nos demais casos. Exemplo: if( a>3 && b<4).
||

(OU lgico)

Retorna verdadeiro se um ou ambos os operandos so verdadeiros e falso se ambos so falsos. Exemplo: if( a>3 || b<4).

(NO lgico)

Usada com apenas um operando. Retorna verdadeiro se ele falso e vice-versa. Exemplo: if( !var ). Notar que essa expresso equivalente a if( var==0 ). Topo | Fim

Operador condicional

Tem a forma genrica


varivel = (expr1) ? (expr2) : (expr3)

Substitui declaraes tipo if-else. Exemplo:


x = (var==0) ? 2 : 3;

O exemplo acima equivalente a


if( var==0 ) x = 2; else x = 3;

Operadores de endereo & *

Topo | Fim

(endereo do operando) (valor no endereo do operando)

So usados basicamente com ponteiros. Mais informaes na pgina correspondente. Topo | Fim

Operador vrgula

Em C, a vrgula (,) pode ser apenas uma pontuao. Por exemplo, para separar argumentos de uma funo:
int func(int a, int b)

Mas pode ser tambm um operador como o seguinte


var = a, a = b;

As expresses so executadas da esquerda para a direita. Assim, na linha anterior, primeiro var assume o valor de a e, depois, a assume o valor de b. comum o seu uso dentro de uma declarao for
for( a=10, b=1; a>0, b<10; a--, b++ ) ...

Operador sizeof

Topo | Fim

Retorna o nmero de bytes ocupados pelo operando, que pode ser uma varivel ou um tipo genrico de dado. Exemplos a seguir: sizeof( float ); retorna 4, que o nmero de bytes de dados tipo float.
char str[] = "valor"; sizeof (str);

retorna 6 (5 caracteres mais o nulo do final da string).