Italo Info


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