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 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) valuePoiché 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.
Sfida
FacileScrivi un programma che:
- Dichiara una variabile double
resulte le assegna il valore 5.65 - Dichiara una variabile int
grade - Assegna il valore di
resultagradeusando il casting esplicito - Stampa il valore di
gradecon 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;
}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