Conversion de type - Partie 1
Fait partie de la section Fondamentaux du Journey C de Coddy. Leçon 13 sur 63.
La conversion de type en C vous permet de convertir une valeur d’un type de données vers un autre. Cela est utile lorsque vous devez effectuer des opérations entre différents types de données.
Il existe deux principaux types de conversion de type :
- Conversion implicite (automatique)
- Conversion explicite (manuelle)
Commençons par la conversion implicite :
La conversion implicite se produit automatiquement lors de la conversion d’un type de données plus petit vers un type plus grand :
int num = 10;
double decimal_num;
// Conversion implicite de int en double
decimal_num = num;Après l’exécution du code ci-dessus, decimal_num aura la valeur 10.0
Cela fonctionne parce qu’un double peut stocker toutes les valeurs possibles d’un int sans perdre de données. La conversion est sûre, donc C la fait automatiquement.
Chemins courants de conversion implicite :
- char → int → long → float → double
Examinons maintenant la conversion de type explicite :
Le Explicit casting est effectué manuellement en plaçant le type de données cible entre parenthèses avant la valeur que vous souhaitez convert. Cela est nécessaire lors de la conversion d’un type de données plus grand vers un type plus petit, où une perte de données peut se produire :
double decimal_num = 5.65;
int num;
// Conversion explicite de double en int
num = (int)decimal_num;Après l’exécution du code ci-dessus, num aura la valeur 5
Notez que la partie décimale est tronquée (et non arrondie) lors de la conversion explicite de double en int. La syntaxe de la conversion explicite est la suivante :
(target_type) valueParce que cette conversion peut entraîner une perte de données, C exige que vous l’effectuiez explicitement. Cela indique au compilateur que vous êtes conscient de la perte de données potentielle.
Défi
FacileÉcrivez un programme qui :
- Déclare une variable double
resultet lui attribue la valeur 5.65 - Déclare une variable int
grade - Attribue la valeur de
resultàgradeen utilisant une conversion explicite - Affiche la valeur de
gradeavec le message "The grade is: " en utilisant printf
Essayez vous-même
#include <stdio.h>
int main() {
double result = 5.65;
int grade;
// Utilisez un cast explicite pour convertir result (double) en grade (int)
printf("The grade is: %d\n", grade);
return 0;
}Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.
Toutes les leçons de Fondamentaux
2Variables
Types de donnéesEntierVirgule flottante - DoubleCaractèresBooléensConstantesBases de printfRègles de nommage des variablesConversion de type - Partie 1Conversion de type - Partie 2Défi récapitulatif3Opérateurs
Opérateurs arithmétiquesOpérateur moduloIncrémentation/DécrémentationOpérateurs d’affectationOpérateurs relationnelsOpérateurs logiques — Partie 1Opérateurs logiques — Partie 2Opérateurs logiques — Partie 3Défi récapitulatifEntraînez-vous par vous-même : Compilateur C en ligne