Conversão de tipos - Parte 1
Parte da seção Fundamentos do Journey de C da Coddy. Lição 13 de 63.
A conversão de tipos em C permite converter um valor de um tipo de dado para outro. Isso é útil quando você precisa realizar operações entre diferentes tipos de dados.
Existem dois tipos principais de conversão de tipos:
- Conversão implícita (automática)
- Conversão explícita (manual)
Vamos começar com a conversão implícita:
A conversão implícita acontece automaticamente ao converter de um tipo de dado menor para um maior:
int num = 10;
double decimal_num;
// Conversão implícita de int para double
decimal_num = num;Após executar o código acima, decimal_num terá o valor 10.0
Isso funciona porque um double pode armazenar todos os valores possíveis de um int sem perder nenhum dado. A conversão é segura, então C a faz automaticamente.
Caminhos comuns de conversão implícita:
- char → int → long → float → double
Agora vamos analisar a conversão explícita:
A conversão explícita é feita manualmente colocando o tipo de dados de destino entre parênteses antes do valor que você deseja converter. Isso é necessário ao converter de um tipo de dados maior para um menor, quando pode ocorrer perda de dados:
double decimal_num = 5.65;
int num;
// Casting explícito de double para int
num = (int)decimal_num;Após executar o código acima, num terá o valor 5
Observe que a parte decimal é truncada (não arredondada) ao fazer a conversão de double para int. A sintaxe para a conversão explícita é:
(target_type) valueComo essa conversão pode causar perda de dados, C exige que você a faça explicitamente. Isso informa ao compilador que você está ciente da possível perda de dados.
Desafio
FácilEscreva um programa que:
- Declare uma variável double
resulte atribua a ela o valor 5.65 - Declare uma variável int
grade - Atribua o valor de
resultagradeusando conversão explícita de tipo - Imprima o valor de
gradecom a mensagem "The grade is: " usando printf
Experimente você mesmo
#include <stdio.h>
int main() {
double result = 5.65;
int grade;
// Use casting explícito para converter result (double) para grade (int)
printf("The grade is: %d\n", grade);
return 0;
}Esta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.
Todas as lições de Fundamentos
2Variáveis
Tipos de dadosInteiroPonto flutuante - DoubleCaracteresBooleanosConstantesNoções básicas de printfRegras de nomenclatura de variáveisConversão de tipos - Parte 1Conversão de tipos - Parte 2Desafio de revisão3Operadores
Operadores aritméticosOperador móduloIncremento/DecrementoOperadores de atribuiçãoOperadores relacionaisOperadores lógicos Parte 1Operadores lógicos Parte 2Operadores lógicos Parte 3Desafio de revisãoPratique por conta própria: Compilador de C online