C – Operadores
Abordar os conceitos sobre os Operadores demonstrando o seu uso com exemplos para um melhor aprendizado.
Operadores
Os operadores indicam ao compilador a necessidade de se fazer manipulações matemáticas ou lógicas.
Operadores aritméticos
Os operadores aritméticos são usados para calcular expressões matemáticas. Sendo classificados em duas categorias: os binários ou unários. Os operadores unários atuam na inversão de valores. Veja a tabela abaixo.
Operador binário | Descrição |
=
|
Atribuição
|
+
|
Soma
|
–
|
Subtração
|
/
|
Divisão
|
%
|
Modulo (obtém o resto da divisão)
|
Operador unário | Ação |
–
|
Sinal negativo
|
+
|
Sinal positivo
|
Tabela – Operadores aritméticos
O operador de atribuição (=) já foi estudado no artigo “Linguagem C – Princípios básicos” para explicar como inicializar uma variável.
O exemplo abaixo imprime os resultado na tela das operações de soma, subtração, multiplicação, divisão e o modulo entre dois números dados. Ilustrando assim o uso dos operadores aritméticos.
Saída do programa:
69+24=93
69-24=45
69×24=1656.000
69/24=2.875
69 mod 24=21.000
Operadores de incremento e decremento
O operador de incremento (++) soma 1 ao seu operando enquanto que o de decremento (–) subtrai um. Eles podem ser pré-fixados ou pós-fixados conforme mostra a tabela abaixo:
Operador | Instrução | Pós-fixado | Pré-fixado |
++
|
var = var+1;
|
var = var++;
ou var++; |
var = ++var;
ou ++var; |
—
|
var = var-1;
|
var = var–;
ou var–; |
var= –var;
ou –var; |
Tabela – Operadores de incremento e decremento
No caso das instruções mostradas acima não existe diferença, podemos aplicar tanto o pós-fixado quanto o pré-fixado. Mas quando esses operadores são usados em outras expressões necessita-se de cuidado, pois o uso incorreto pode ocasionar resultados inesperados. A diferença entre eles é que o pré-fixado incrementa a variável para depois executar a instrução e a pós-fixado executa a instrução para depois fazer o incremento da variável. Veja o exemplo abaixo:
Saída do programa:
var=6
var2=6
O programa acima incrementa a variável var e coloca o valor na var2 que no nosso caso será 6. Já o código abaixo coloca o valor da variável var na var2 que é 5 para depois incrementar a variável var.
Saída do programa:
var=6
var2=5
Operadores aritméticos de atribuições
São combinações de operadores que simplificam as instruções e que geralmente são usados por programadores experientes. Dessa forma uma instrução escrita da forma:
Var= var operador + expressão
Pode ser reduzida obedecendo à sintaxe:
Var operador= expressão
Veja alguns exemplos utilizando duas variáveis (var e expr) que devem ser declaradas em seus programas.
Instrução normal | Instrução reduzida |
var = var + expr; | var+=expr; |
Var=var – expr; | Var-=expr; |
Var=var/expr; | Var/=expr; |
Var=var*expr; | Var*=expr; |
Operadores relacionais
Esses operadores são responsáveis pelas comparações de expressões nos programas. A lista completa se encontra abaixo:
Operador | Descrição |
>
|
Maior
|
>=
|
Maior igual
|
<
|
Menor
|
<=
|
Menor igual
|
==
|
Igualdade
|
!=
|
Diferente
|
Tabela – Operadores relacionais
É importante distinguir (=) de (==). O primeiro atribui um valor e o segundo comprara expressões.
O próximo exemplo demonstra a analise de algumas expressões retornando 0 para falso e 1 para verdadeiro. Esses dados são todos impressos na tela (veja a saída do programa).
Saída do programa:
Valor 0 indica expressão falsa e 1 expressão verdadeira.
98==10 é 0
98!=10 é 1
98<=10 é 0
98>=10 é 1
98<10 é 0
98 >10 é 1
Operadores lógicos
Os operados lógicos servem para interligar mais de uma operação relacional. E assim como os relacionais retornam zero para falso e um para verdadeiro.
Operador
|
Descrição
|
&&
|
AND
|
||
|
OR
|
!
|
NOT (operador de negação)
|
Tabela – Operadores lógicos
Exemplo de utilização de operadores lógicos:
Saída do programa:
O número 76 esta entre 65 e 80
Nesse programa o operador lógico (&&) faz a ligação das operações relacionais (x>65) e (x<=80), verificando se o número dado (x) está entre essa faixa. A instrução if será estudada no próximo artigo.
Operadores bit a bit
Como já sabemos a linguagem C é considerada de baixo nível, pois permite a manipulação de bits. Isto é feito através dos operadores bit a bit listados a seguir.
Operador
|
Descrição
|
&
|
AND
|
|
|
OR
|
^
|
XOR (OR exclusivo)
|
<<
|
Deslocamento para esquerda
|
>>
|
Deslocamento para direita
|
Tabela – operadores bit a bit
Embora a descrição na tabela seja parecida com as dos operadores Lógicos eles não devem ser confundidos. Os operadores bit a bit são muito usados em rotinas de modens e de impressoras.
Operador Cast
Tem como função forçar para que uma expressão seja de um determinado tipo. Sua sintaxe é:
(tipo de dado) expressão
O tipo de dado pode ser qualquer um dos definidos pelo padrão ANSI. Um exemplo da utilização deste operador pode ser visto no programa mostrado neste artigo para exemplificar o uso dos operadores aritméticos. Nesse programa o operador cast é usado para forçar a divisão de dois números inteiros ser do tipo float.
Operador Sizeof
Este operador é usado em tempo de execução e tem como objetivo retornar o tamanho em bytes da variável.
Saída do programa:
A variavel x do tipo float tem o tamanho=4 bytes
A variavel y do tipo double tem o tamanho=8 bytes
A variavel z do tipo char tem o tamanho=1 bytes
Precedências
Precedência é a prioridade com que os operadores são executados pelo compilador. Caso os operadores tenham o mesmo nível de precedência eles são analisados da esquerda para direita.
Prioridades dos operadores aritméticos | |
Alta | Incremento(++), decremento (–) |
Menos unitário (-) | |
Multiplicação(*), divisão(/), modulo(%) | |
Baixa | Soma(+), subtração(-) |
A precedência dos operadores pode ser mudada utilizando parentes. Para entender melhor veja o exemplo abaixo, onde as duas expressões são iguais, porém o uso de um parêntese fez mudar a precedência obtendo assim resultados diferentes.
4/2*5+1=11
4/2*(5+1)=12
Fonte: http://www.juliobattisti.com.br/tutoriais/katiaduarte/cbasico002.asp