Menu
Coddy logo textTech

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:

  1. Conversão implícita (automática)
  2. 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) value

Como 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.

challenge icon

Desafio

Fácil

Escreva um programa que:

  1. Declare uma variável double result e atribua a ela o valor 5.65
  2. Declare uma variável int grade
  3. Atribua o valor de result a grade usando conversão explícita de tipo
  4. Imprima o valor de grade com 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;
}
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 Fundamentos

Pratique por conta própria: Compilador de C online