Menu
Coddy logo textTech

Conversão de Tipos Parte 1

Parte da seção Fundamentals do Journey de C da Coddy — lição 13 de 63.

A conversão de tipos (type casting) 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 (type casting):

  1. Conversão implícita (automática)
  2. Conversão explícita (manual)

Vamos começar com o casting implícito:

A conversão implícita ocorre 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 o C a faz automaticamente.

Caminhos comuns de casting implícito:

  • char → int → long → float → double

Agora vamos ver o casting explícito:

O casting explícito é feito manualmente colocando o tipo de dado de destino entre parênteses antes do valor que você deseja converter. Isso é necessário ao converter de um tipo de dado maior para um menor, onde 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 realizar o casting de double para int. A sintaxe para o casting explícito é:

(target_type) value

Como essa conversão pode perder dados, o C exige que você a faça explicitamente — isso informa ao compilador que você está ciente da potencial perda de dados.

challenge icon

Desafio

Fácil

Escreva um programa que:

  1. Declare uma variável double result e defina-a como 5.65
  2. Declare uma variável int grade
  3. Atribua o valor de result a grade usando casting explícito
  4. Imprima o valor de grade com a mensagem "The grade is: " usando printf

Folha de consulta

Casting implícito — conversão automática de um tipo menor para um maior:

int num = 10;
double decimal_num = num; // torna-se 10.0

Caminho comum de conversão implícita: char → int → long → float → double

Casting explícito — conversão manual usando (target_type) value:

double decimal_num = 5.65;
int num = (int)decimal_num; // torna-se 5 (truncado, não arredondado)

Use casting explícito ao converter de um tipo maior para um menor, onde pode ocorrer perda de dados.

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;
}
quiz iconTeste seus conhecimentos

Esta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.

Todas as lições de Fundamentals