MSPC

   Informações técnicas
| Mapa | Fim pág |

 

Linguagem C - Operadores


Índice do grupo | Página anterior | Próxima página |

Operador de igualdade |
Operadores aritméticos |
Operadores relacionais |
Operadores compostos |
Operadores de incremento e decremento |
Operadores de bits | Operadores lógicos |
Operador condicional | Operadores de endereço |
Operador vírgula | Operador sizeof |
Índices

Ciência dos materiais
Eletricidade e eletromagnetismo
Eletrônica digital
Eletrônica em geral
Fluidos, calor, frio, etc
Informática
Matemática
Mecânica teórica
Resistência dos materiais
Temas técnicos diversos
Temas diversos
Termodinâmica / transmissão de calor

Operador de igualdade
Topo | Fim

Comum à maioria das linguagens, este operador (=) faz a variável da esquerda assumir o valor da variável, constante ou expressão da direita. Exemplo:

var = var + 2;

Portanto, o conteúdo de var é aumentado de 2.


Operadores aritméticos
Topo | Fim

Operador Descrição
* Multiplicação
/ Divisão
% Resto
+ Adição
- Subtração

Exemplo:

var = 10 % 3; (o valor de var será 1)


Operadores relacionais
Topo | Fim

Eles avaliam o relacionamento entre duas expressões e dão o resultado 1 se verdadeiro ou 0 se falso.

Operador Descrição
< Menor que
<= Menor ou igual
> Maior que
>= Maior ou igual
== Igual
!= Diferente

Exemplo:

var = 2;
if( var>2 )
var = 3;

Ou seja, o valor de var continua 2.

Um lapso comum é confundir o operador de comparação (==) com o operador de igualdade (=). Exemplo:

var = 1;
if( var=2 )
var = 3;

E o valor de var será 3, o que certamente não era esperado. Isso ocorre porque var=2 atribui 2 a var e, desde que foi executado, a expressão retornará um valor verdadeiro para a declaração if, permitindo a execução da linha seguinte. Portanto, o correto seria

if( var==2 )

Deve ser lembrado que, mesmo sem operadores, a linguagem C considera verdadeiro qualquer valor não nulo. Por exemplo, após a execução das linhas

var = 2;
if( -50 )
var = 3;

o valor de var será 3.


Operadores compostos
Topo | Fim

O operador de igualdade (=) pode ser combinado com outros para simplificar expressões.

Operador Equivalência Descrição
a *= b a = a * b Multiplicação
a /= b a = a / b Divisão
a %= b a = a % b Resto
a += b a = a + b Adição
a -= b a = a - b Subtração
a <<= b a = a << b Desloc esquerda
a >>= b a = a >> b Desloc direita
a &= b a = a & b E
a ^= b a = a ^ b OU exclusivo
a |= b a = a | b OU inclusivo

Notar que o outro operador deve sempre ser colocado à esquerda do sinal =.

Alguns operadores dessa tabela serão citados mais adiante.


Operadores de incremento e decremento
Topo | Fim

São dois operadores bastante úteis para simplificar expressões:

++ (incremento de 1)

-- (decremento de 1)

Podem ser colocados antes ou depois da variável a modificar. Se inseridos antes, modificam o valor
antes da expressão 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.


Operadores de bits
Topo | Fim

Manipulam bits em valores inteiros. Nos exemplos a seguir, são 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 variável var tem o valor 170 (10101010), após ~var, ela terá 85 (01010101).

<< (deslocamento à esquerda)

Desloca, para a esquerda, os bits do operando esquerdo no valor dado pelo operando direito. Equivale à multiplicação pela potência de 2 dada por este último. Exemplo: se a variável var tem o valor 3 (00000011), após var << 2, ela será 12 (00001100).

Continua no topo da página (coluna direita)
Operadores de bits (cont)
Topo | Fim

>> (deslocamento à direita)

Desloca, para a direita, os bits do operando esquerdo no valor dado pelo operando direito. Equivale à divisão pela potência de 2 dada por este último. Exemplo: se a variável var tem o valor 12 (00001100), após var >> 2, terá 3 (00000011).

& (E)

Faz o valor do bit igual a 1 se ambos os bits correspondentes nos operandos são 1 e 0 nos demais casos. Exemplo: se a variável var tem o valor 12 (00001100) e fazendo a operação 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 variável var tem o valor 12 (00001100) e fazendo a operação 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 variável var tem o valor 12 (00001100) e fazendo a operação com 6 (00000110), o resultado, var | 6, será 14 (00001110).


Operadores lógicos
Topo | Fim

Usados normalmente com expressões booleanas, isto é, expressões que retornam verdadeiro ou falso (1 ou 0), para fins de testes em declarações condicionais.

&& (E lógico)

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

|| (OU lógico)

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

! (NÃO lógico)

Usada com apenas um operando. Retorna verdadeiro se ele é falso e vice-versa. Exemplo: if( !var ). Notar que essa expressão é equivalente a if( var==0 ).


Operador condicional
Topo | Fim

Tem a forma genérica

variável = (expr1) ? (expr2) : (expr3)

Substitui declarações tipo if-else. Exemplo:

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

O exemplo acima é equivalente a

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


Operadores de endereço
Topo | Fim

& (endereço do operando)

* (valor no endereço do operando)

São usados basicamente com ponteiros. Mais informações na página correspondente.


Operador vírgula
Topo | Fim

Em C, a vírgula (,) pode ser apenas uma pontuação. Por exemplo, para separar argumentos de uma função:

int func(int a, int b)

Mas pode ser também um operador como o seguinte

var = a, a = b;

As expressões são 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 declaração for

for( a=10, b=1; a>0, b<10; a--, b++ ) ...


Operador sizeof
Topo | Fim

Retorna o número de bytes ocupados pelo operando, que pode ser uma variável ou um tipo genérico de dado. Exemplos a seguir

sizeof( float ); retorna 4, que é o número de bytes de dados tipo float.

char str[] = "valor";
sizeof (str); retorna 6 (5 caracteres mais o nulo do final da string).

Melhor visto com
1024x768 px

Termos de uso