Menu
CoddyTech

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 il casting implicito:

La conversione implicita avviene automaticamente, ad esempio quando assegni il valore di un tipo di dato più piccolo a una variabile di tipo 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

Questa conversione è sicura perché un double può memorizzare tutti i possibili valori di un int senza perdere alcun dato.

Percorsi comuni di conversione implicita:

  • char → int → long → float → double

Il passaggio da long a float può comportare una perdita di precisione: un float non può rappresentare esattamente ogni long, quindi 123456789 diventa 123456792.0.

Ora esaminiamo la conversione esplicita:

Il casting esplicito si esegue manualmente inserendo il tipo di dati di destinazione tra parentesi prima del valore che vuoi convertire. Usalo quando converti da un tipo di dati più grande a uno più piccolo, perché potrebbe verificarsi una perdita 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 converte da double a int. La sintassi per la conversione esplicita è:

(target_type) value

Anche C eseguirebbe questa conversione senza il cast: num = decimal_num; restituisce lo stesso 5. Poiché la conversione può comportare una perdita di dati, scrivere il cast la rende visibile e comunica al compilatore che sei consapevole della potenziale perdita di dati.

challenge icon

Sfida

Facile

Scrivi un programma che:

  1. Dichiari una variabile double result e la imposti a 5.65
  2. Dichiari una variabile int grade
  3. Assegni il valore di result a grade usando il casting esplicito

La riga sotto il tuo codice stampa grade con il messaggio "The grade is: ".

Provalo tu

    double result = 5.65;
    int grade;
    
    // Usa il casting esplicito per convertire result (double) in grade (int)
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