Esta dica é para quem está começando a aprender linguagem C. O seu objetivo principal é chamar a atenção dos iniciantes ao uso do operador cast, que tem pegado muita gente desprevenida em provas e testes. Aqui você vai encontrar apenas para que serve esse operador e como usá-lo. Boa leitura.
O
operador cast tem a função de forçar uma variável a ser de um tipo diferente do que foi declarado no programa. Assim, pode-se mudar uma variável de tipo int para float. Mas para que? Para responder essa pergunta, vamos analisar o seguinte exemplo:
#include<stdio.h>
#include<conio.h>
void main(){
float res;
int n1, n2, n3, n4;
clrscr();
scanf("%d%d%d%d", &n1, &n2, &n3, &n4);
res=(n1+n2+n3+n4)/4;
printf(" %.2f ", res);
getch();
}
Este simples programa calcula a média de quatro números inteiros. Nele eu não utilizei o operador cast.
Agora vamos executá-lo usando os seguintes valores: n1=3, n2=2, n3=4 e n4=1. Com esses valores obtemos soma igual a 10, logo se a dividirmos por 4, o resultado impresso na tela deve ser 2,50, já que res é de tipo float. Entretanto, se você executar o programa, verá que a resposta foi igual a 2,00.
Porque isso acontece? A explicação desse erro é muito simples. Os valores para n1, n2, n3 e n4 são todos inteiros, logo a soma destes também dá um número inteiro. Essa soma foi dividida por um número (4), que é um número inteiro. Por causa disso, res recebeu um valor inteiro. Isso ocorre porque na linguagem C, uma operação realizada só com números inteiros não passa um valor de outro tipo como resposta.
É aí que entra o operador cast, para forçar as variáveis a ser de tipo float.
A sintaxe do operador cast é a seguinte:
Variável=(tipo)operação;
Vamos ver agora o mesmo exemplo com o uso do cast:
#include<stdio.h>
#include<conio.h>
void main(){
float res;
int n1, n2, n3, n4;
clrscr();
scanf("%d%d%d%d", &n1, &n2, &n3, &n4);
res=(float)(n1+n2+n3+n4)/4;
printf(" %.2f ", res);
getch();
}
Se você observar, o operador cast foi usado na linha : res=(float)(n1+n2+n3+n4)/4;
Agora, rodando o programa se obtém o resultado esperado, 2,50.
Fácil, não?
Uma outra forma de se obter o mesmo resultado sem o operador cast, é colocar no lugar do 4, o valor 4,0. Desse modo o valor real do divisor irá se sobressair ao tipo inteiro das variáveis, passando uma resposta de tipo real. Teste depois (sem usar o cast).
Como você pode observar, o operador cast é muito simples e muito fácil de se esquecer, o que pode trazer muitos problemas para o seu programa. Já vi muita gente errando questões de prova por causa do cast, sem contar nos testes para emprego ou estágio onde esquecem de usar esse operador. Um desastre!! Vamos prestar mais atenção nas operações e, se for o caso, usar o cast. Assim o resultado é 10!!