Menu
Coddy logo textTech

Type Casting Partie 1

Fait partie de la section Fundamentals du Journey C de Coddy — leçon 13 sur 63.

Le transtypage en C vous permet de convertir une valeur d'un type de données à un autre. C'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 (type casting) :

  1. Conversion implicite (automatique)
  2. Conversion explicite (manuelle)

Commençons par le transtypage implicite :

Le transtypage 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;

// Transtypage implicite de int vers 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 le C le fait automatiquement.

Chemins de transtypage implicite courants :

  • char → int → long → float → double

Maintenant, examinons le transtypage explicite :

Le transtypage explicite se fait manuellement en plaçant le type de données cible entre parenthèses avant la valeur que vous souhaitez convertir. Cela est nécessaire lors de la conversion d'un type de données plus grand vers un plus petit, où une perte de données peut se produire :

double decimal_num = 5.65;
int num;

// Transtypage explicite de double vers int
num = (int)decimal_num;

Après l'exécution du code ci-dessus, num aura la valeur 5

Remarquez que la partie décimale est tronquée (et non arrondie) lors du transtypage d'un double vers un int. La syntaxe pour le transtypage explicite est :

(target_type) value

Parce que cette conversion peut entraîner une perte de données, le langage C exige que vous le fassiez explicitement — cela indique au compilateur que vous êtes conscient de la perte de données potentielle.

challenge icon

Défi

Facile

Écrivez un programme qui :

  1. Déclare une variable double result et lui affecte la valeur 5.65
  2. Déclare une variable int grade
  3. Assigne la valeur de result à grade en utilisant un transtypage explicite
  4. Affiche la valeur de grade avec le message "The grade is: " en utilisant printf

Aide-mémoire

Transtypage implicite — conversion automatique d'un type plus petit vers un type plus grand :

int num = 10;
double decimal_num = num; // devient 10.0

Chemin de transtypage implicite courant : char → int → long → float → double

Transtypage explicite — conversion manuelle en utilisant (target_type) value :

double decimal_num = 5.65;
int num = (int)decimal_num; // devient 5 (tronqué, pas arrondi)

Utilisez le transtypage explicite lors de la conversion d'un type plus grand vers un type plus petit, où une perte de données peut se produire.

Essayez vous-même

#include <stdio.h>

int main() {
    double result = 5.65;
    int grade;
    
    // Utiliser le transtypage explicite pour convertir result (double) en grade (int)
    
    printf("The grade is: %d\n", grade);
    
    return 0;
}
quiz iconTestez-vous

Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.

Toutes les leçons de Fundamentals