Operadores
Dificilmente, se produz um programa útil sem o uso de operadores. Por isso, a linguagem C dispõe de operadores lógicos, operadores aritméticos e operadores de comparação. Veja a seguir os alguns desses operadores:
Operadores Aritméticos
Conforme foi explicado em aula anterior, os operadores aritméticos estão mostrados abaixo:
Função | Operador |
---|---|
Soma | + |
Subtração | - |
Multiplicação | * |
Divisão | / |
Resto de divisão | % |
Sejam dois números n1 e n2, então: n1 += n2 é o mesmo que n1 = n1 + n2 assim como com os operadores -=, *=, /= e %=. Veja a tabela abaixo:
Em cada linha, as atribuições são equivalentes | |||
---|---|---|---|
n1 = n1 + 1 | n1 += 1 | n1++ | ++n1 |
n1 = n1 - 1 | n1 -= 1 | n1-- | --n1 |
n1 = n1 + n2 | n1 += n2 | ||
n1 = n1 - n2 | n1 -= n2 | ||
n1 = n1 * n2 | n1 *= n2 | ||
n1 = n1 / n2 | n1 /= n2 | ||
n1 = n1 % n2 | n1 %= n2 |
Veja o exemplo abaixo e preste atenção aos comentários:
#include <stdio.h>
int main() {
int a = 1;
a += 1; // a recebe a mais 1
printf( "%d ", a ); // imprime 2
a--; // a recebe a menos 1
printf( "%d ", a ); // imprime 1
a *= -5; // a recebe a * (-5)
printf( "%d ", a ); // imprime -5
a = a + 5; // a recebe a + 5
printf( "%d ", a ); // imprime 0
return 0;
}
diferença entre i++ e ++i
O i++ se combinado com uma instrução, é executado após a execução da instrução. Já o ++i é executado antes da instrução. Veja o exemplo abaixo:
#include <stdio.h>
int main() {
int a = 1;
printf( "%d ", ++a ); // incrementa a, depois, imprime 2
printf( "%d ", a++ ); // imprime 2 e, depois, incrementa a
printf( "%d", a ); // imprime 3
return 0;
}
Operadores de comparação
Entender os operadores de comparação é simples. Veja a tabela abaixo:
Função | Operador |
---|---|
Igualdade | == |
Diferença | != |
Maior que | > |
Menor que | < |
Maior ou igual a | >= |
Menor ou igual a | <= |
Operadores lógicos
A tabela abaixo mostra os operadores lógicos e seu significado em português:
Descrição | Operador |
---|---|
E | && |
Ou | || |
Negação | ! |
Ou exclusivo | ^ |
Para compreender melhor os operadores lógicos e os operadores de comparação, veja o exemplo abaixo:
#include <stdio.h>
int main() {
int a = 1;
int b = 2;
int c = 3;
int d = 4;
if ( a < b && a < c && a < d ) // Se a for menor que b, c e d
printf( "\nA eh menor" );
if ( b > a || !(c > a) ) // Se b for maior que a ou c não for maior que a
printf( "\nb eh maior que a ou c eh menor ou igual a \"a\"" );
return 0;
}
No exemplo acima, é utilizado o comando if (que será visto mais adiante) para comparar o valor de variáveis inteiras. A execução da expressão lógica que está dentro do if acontece de modo análogo a expressões em português. Por exemplo:
(O menino comeu a maçã) e (O menino comeu a laranja)
(O menino foi estudar) ou (O menino foi brincar)
ou (O rapaz morreu) ou (O rapaz está vivo)
(2 é menor que 3) ou (2 é menor que 1)
O menino foi a festa
O menino não foi a festa
não (O menino foi a festa) = O menino não foi a festa