Operadores

Os operadores em C são usados para realizar operações em variáveis e valores.

Operadores aritméticos

Os operadores aritméticos servem para realizar operações aritméticas entre duas variáveis e ou valores.

OperaçãoSimbolo
Soma+
Subtração
Multiplicação*
Divisão real/
Módulo%

NOTA: o operador módulo (%) dá como resultado o resto da divisão inteira entre os dois operandos.

int n1 = 9 ;

int n2 = 4 ;

int res = n1 + n2 ;    //res = 13

int res = n1 – n2 ;    //res = 5

int res = n1 * n2;     // res = 36

double res = 7.0 / 4.0;  // res = 1.750

int res = n1 % n2;   //res = 1

Notas : 

No caso da divisão, se ambos os operandos forem inteiros é efetuada uma divisão inteira retornando o quociente:

printf("%d\n", 7 / 4);    //1

Se um dos operandos fôr um numero de virgula flutuante, é efetuada uma divisão real sendo o resultado um numero de virgula flutuante:

printf("%lf\n", 7.0 / 4);  //1.75000

Operadores unários de incrementação e decrementação

Os operadores unários de incrementação/decrementação são operadores com um só operando (geralmente uma variável inteira) e incrementam/decrementam uma unidade ao operando.

OperaçãoSimbolo
Incrementa 1++
Decrementa 1

Quando o operador é colocado antes da variável, é chamado de pré-incremento/decremento, e quando é colocado depois da variável, é chamado de pós-incremento/decremento.

No pré-incremento, a variável é incrementada/decrementada e depois usada.

  

int n1 = 7;

int res = ++n1;

printf("%d-%d\n", res, n1); // 8-8

No pós-incremento a variável é usada e depois incrementada/decrementada.

   

int n1 = 7;

int res = n1++;

printf("%d-%d\n", res, n1);  //7-8

Operadores de atribuição

Os operadores de atribuição servem para atribuir um valor a uma variável.

OperaçãoSimbolo
Atribuição simples=
Soma e atribuição+=
Subtração e atribuição-=
Multiplicação e atribuição*=
Divisão e atribuição/=
Módulo e atribuição%=

   

int n1 = 9;

n1 += 3; //12

n1 -= 4; //8

n1 *= 2;  //16

n1 /= 4;  //4

n1 %= 2;  //0

Operadores relacionais

Os operadores relacionais realizam operações de comparação entre dois operandos. O resultado de uma operação relacional é sempre verdadeiro ou falso.

OperaçãoSimbolo
Igual==
Maior que
Maior ou igual a>=
Menor que
Menor ou igual a<=
Diferente de!=

 

int n1 = 9;

int n2 = 4;

printf("%d\n", n1 == n2);  //0 (falso)

printf("%d\n", n1 > n2);   //1 (verdadeiro)

printf("%d\n", n1 >= n2);  //1 (verdadeiro)

printf("%d\n", n1 < n2);   //0 (falso)

printf("%d\n", n1 <= n2);  //0 (falso)

printf("%d\n", n1 != n2);  //1 (verdadeiro)

NOTA:  No exemplo acima, o output das operações é 0 ou 1. Isto é porque o C não possui o tipo de dados booleano e por isso 0 é falso e 1 é verdadeiro.

Operadores lógicos

Os operadores servem para combinar valores booleanos (variáveis, valores ou expressões). O resultado de uma operação lógica é sempre verdadeiro ou falso.

OperaçãoSimbolo
E&&
Ou||
Não!

A operação && (e) retorna verdadeiro quando ambos os operandos são verdadeiros e falso no caso contrário, como se +ode ver na tabela abaixo:

Op1Op2Op1 && Op2
VVV
VFF
FVF
FFF

A operação || (ou) retorna verdadeiro quando um dos operandos é verdadeiro e falso no caso contrário:

Op1Op2Op1 ||Op2
VVV
VFV
FVV
FFF

A operação ! (não) só tem um operando e nega este:

Op1! Op1
VF
FV
int n1 = 9;

int n2 = 4;

printf("%d\n", n1 > 4 && n2 < 4);      //0 (falso)

printf("%d\n", n1 == n2 || n2 <= n1);  //1 (verdadeiro)

printf("%d\n", !(n1 >= n2));           //0 (falso)

Operador de endereço

O operador de endereço é o operador &. Este operador é usado para obter o endereço de memória da uma variável:

int nr1 = 67;

printf(“%d”, &nr1);