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:
- Conversione implicita (automatica)
- 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) valueAnche 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.
Sfida
FacileScrivi un programma che:
- Dichiari una variabile double
resulte la imposti a 5.65 - Dichiari una variabile int
grade - Assegni il valore di
resultagradeusando 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)
Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.
Tutte le lezioni di Fondamenti
2Variabili
Tipi di datiInteroFloat - DoubleCaratteriValori booleaniCostantiFondamenti di printfRegole di denominazione delle variabiliConversione di tipo parte 1Conversione di tipo parte 2Sfida di ripasso3Operatori
Operatori aritmeticiOperatore moduloIncremento/DecrementoOperatori di assegnazioneOperatori relazionaliOperatori logici Parte 1Operatori logici Parte 2Operatori logici Parte 3Sfida di riepilogoEsercitati da solo: Compilatore C online