Linguagem C Operadora Objetivos 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. Tabela Operadores aritméticos 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 1
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 resultados 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. 69+24=93 69-24=45 69x24=1656.000 69/24=2.875 69 mod 24=21.000 2
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: Tabela Operadores de incremento e decremento 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; No caso das instruções mostradas acima não existe diferença, podemos aplicar tanto o pósfixado 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: var=6 var2=6 3
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. var=6 var2=5 4
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: Tabela Operadores relacionais Operador Descrição > Maior >= Maior igual < Menor <= Menor igual == Igualdade!= Diferente 5
É 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). 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 6
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. Tabela Operadores lógicos Operador && Descrição AND OR! NOT (operador de negação) Exemplo de utilização de operadores lógicos: O número 76 esta entre 65 e 80 7
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. Tabela operadores bit a bit Operador & Descrição AND OR ^ XOR (OR exclusivo) << Deslocamento para esquerda >> Deslocamento para direita 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 serem do tipo float. 8
Operador Sizeof Este operador é usado em tempo de execução e tem como objetivo retornar o tamanho em bytes da variável. A variável x do tipo float tem o tamanho=4 bytes A variável y do tipo double tem o tamanho=8 bytes A variável z do tipo char tem o tamanho=1 bytes 9
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 10
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 ser muito complexos 11