CURSO DE C

 

Operadores Aritméticos e de Atribuição

Os operadores aritméticos são usados para desenvolver operações matemáticas. A seguir apresentamos a lista dos operadores aritméticos do C:

 

Operador  





++ 
-- 
Ação 
Soma (inteira e ponto flutuante) 
Subtração ou Troca de sinal (inteira e ponto flutuante) 
Multiplicação (inteira e ponto flutuante) 
Divisão (inteira e ponto flutuante) 
Resto de divisão (de inteiros) 
Incremento (inteiro e ponto flutuante) 
Decremento (inteiro e ponto flutuante) 

O C possui operadores unários e binários. Os unários agem sobre uma variável apenas, modificando ou não o seu valor, e retornam o valor final da variável. Os binários usam duas variáveis e retornam um terceiro valor, sem alterar as variáveis originais. A soma é um operador binário pois pega duas variáveis, soma seus valores, sem alterar as variáveis, e retorna esta soma. Outros operadores binários são os operadores - (subtração), *, / e %. O operador - como troca de sinal é um operador unário que não altera a variável sobre a qual é aplicado, pois ele retorna o valor da variável multiplicado por -1.

O operador / (divisão) quando aplicado a variáveis inteiras, nos fornece o resultado da divisão inteira; quando aplicado a variáveis em ponto flutuante nos fornece o resultado da divisão "real". Assim seja o seguinte trecho de código:

        int a = 17, b = 3;
        int x, y;
        float z = 17. , z1, z2;
        x = a / b;
        y = a % b;
        z1 = z / b;
        z2 = a/b;

ao final da execução destas linhas, os valores calculados seriam  x = 5,  y = 2,  z1 = 5.666666 e z2 = 5.0 . Note que na linha correspondente a z2, primeiramente é feita uma divisão inteira (pois os dois operandos são inteiros). Somente após efetuada a divisão é que o resultado é atribuído a uma variável float.

 Os operadores de incremento e decremento são unários que alteram a variável sobre a qual estão aplicados. O que eles fazem é incrementar ou decrementar, a variável sobre a qual estão aplicados, de 1. Então
 

                x++;
                x--;

são equivalentes a

                x=x+1;
                x=x-1;

Estes operadores podem ser pré-fixados ou pós- fixados. A diferença é que quando são pré-fixados eles incrementam e retornam o valor da variável já incrementada. Quando são pós-fixados eles retornam o valor da variável sem o incremento e depois incrementam a variável. Então, em

 

                x=23;
                y=x++;

teremos, no final, y=23 e x=24. Em

                x=23;
                y=++x;

teremos, no final, y=24 e x=24. Uma curiosidade: a linguagem de programação C++ tem este nome pois ela seria um "incremento" da linguagem C padrão. A linguagem C++ é igual a linguagem C só que com extensões que permitem a programação orientada a objeto, o que é um recurso extra.

 O operador de atribuição do C é o =. O que ele faz é pegar o valor à direita e atribuir à variável da esquerda. Além disto ele retorna o valor que ele atribuiu. Isto faz com que as seguintes expressões sejam válidas:

 

                x=y=z=1.5;              /* Expressao 1 */

                if (k=w) ...    	/* Expressao 2 */

A expressão 1 é válida, pois quando fazemos z=1.5 ela retorna 1.5, que é passado adiante. A expressão dois será verdadeira se w for diferente de zero, pois este será o valor retornado por k=w. Pense bem antes de usar a expressão dois, pois ela pode gerar erros de interpretação. Você não está comparando k e w. Você está atribuindo o valor de w a k e usando este valor para tomar a decisão.

 


AUTO AVALIAÇÃO

Veja como você está:

Diga o resultado das variáveis x, y e z depois da seguinte sequência de operações:

        int x,y,z;
        x=y=10;
        z=++x;
        x=-x;
        y++;
        x=x+y-(z--);

Página Anterior Índice da Aula Próxima Página


Curso de C do CPDEE/UFMG - 1996 - 1999