Menu
Coddy logo textTech

Conversione di tipo parte 1

Fa parte della sezione Fondamenti del percorso C di Coddy. Lezione 13 di 63.

La conversione di tipo in C consente di convertire un valore da un tipo di dato a un altro. È utile quando devi eseguire operazioni tra tipi di dato diversi.

Esistono due tipi principali di conversione di tipo:

  1. Conversione implicita (automatica)
  2. Conversione esplicita (manuale)

Cominciamo con la conversione implicita:

La conversione implicita avviene automaticamente quando si converte da un tipo di dato più piccolo a uno più grande:

int num = 10;
double decimal_num;

// Conversione implicita da int a double
decimal_num = num;

Dopo aver eseguito il codice qui sopra, decimal_num avrà il valore 10.0

Questo funziona perché un double può memorizzare tutti i possibili valori di un int senza perdere alcun dato. La conversione è sicura, quindi C la esegue automaticamente.

Percorsi comuni di conversione implicita:

  • char → int → long → float → double

Ora diamo un'occhiata alla conversione esplicita:

La conversione esplicita viene eseguita manualmente inserendo il tipo di dato di destinazione tra parentesi prima del valore che vuoi convertire. È necessaria quando si converte da un tipo di dato più grande a uno più piccolo, perché potrebbero verificarsi perdite di dati:

double decimal_num = 5.65;
int num;

// Conversione esplicita da double a int
num = (int)decimal_num;

Dopo aver eseguito il codice qui sopra, num avrà il valore 5

Nota che la parte decimale viene troncata (non arrotondata) quando si esegue il cast da double a int. La sintassi per il cast esplicito è:

(target_type) value

Poiché questa conversione può comportare una perdita di dati, C richiede che tu la esegua esplicitamente. In questo modo comunichi al compilatore che sei consapevole della potenziale perdita di dati.

challenge icon

Sfida

Facile

Scrivi un programma che:

  1. Dichiara una variabile double result e le assegna il valore 5.65
  2. Dichiara una variabile int grade
  3. Assegna il valore di result a grade usando il casting esplicito
  4. Stampa il valore di grade con il messaggio "The grade is: " usando printf

Provalo tu

#include <stdio.h>

int main() {
    double result = 5.65;
    int grade;
    
    // Usa un cast esplicito per convertire result (double) in grade (int)
    
    printf("The grade is: %d\n", grade);
    
    return 0;
}
quiz iconMettiti alla prova

Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.

Tutte le lezioni di Fondamenti

Esercitati da solo: Compilatore C online