Linguagem C – Operadores

Propaganda
Linguagem C – Operadores
Objetivos
Abordar os conceitos sobre os Operadores demonstrando o seu uso com exemplos para
um melhor aprendizado.
Pré-requisitos
É necessário que o leitor tenha acompanhado o artigo anterior, pois os artigos obedecem
a uma seqüência.
Nota: Este artigo faz parte do curso de “Linguagem C – Básico’”.
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
69x24=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++; var = ++var;
var = var+1;
ou
ou
var++;
++var;
var = var--; var= --var;
ou
ou
var = var-1;
var--;
--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
var = var + expr;
Var=var – expr;
Var=var/expr;
Var=var*expr;
Instrução reduzida
var+=expr;
Var-=expr;
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 expressao 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
Conclusão
Conclui-se que os operadores são indispensáveis em nossos programas e que a
linguagem C possui um número muito grande de operadores. Alguns inclusive serão
mostrados mais adiante, por exemplo, os operadores de ponteiro, devido serem muito
complexos.
Download