Menu
Coddy logo textTech

L'opérateur de déréférencement (*)

Fait partie de la section Logic & Flow du Journey C de Coddy — leçon 4 sur 63.

Maintenant que vous savez comment stocker des adresses dans des pointeurs, vous devez apprendre comment accéder à la valeur réelle stockée à cette adresse mémoire. L'opérateur de déréférencement (*) vous permet de « suivre » le pointeur pour obtenir la valeur vers laquelle il pointe.

Lorsque vous placez l'opérateur * devant une variable pointeur, il accède à la valeur stockée à l'adresse mémoire que contient le pointeur. Considérez cela comme si vous disiez « donne-moi ce qui se trouve à l'intérieur de la pièce à cette adresse ».

int age = 25;
int *ptr = &age;
printf("%d", *ptr);    // Affiche 25 - la valeur de age

Il est important de comprendre que l'astérisque (*) a deux significations différentes en C. Lors de la déclaration d'un pointeur comme int *ptr;, l'astérisque indique que ptr est un pointeur. Lorsqu'il est utilisé avec un pointeur existant comme *ptr, il déréférence le pointeur pour accéder à la valeur vers laquelle il pointe.

L'opérateur de déréférencement est essentiel car il complète le cycle des pointeurs : vous pouvez stocker une adresse dans un pointeur avec &, puis récupérer la valeur à cette adresse avec *. Cela vous permet d'accéder et de modifier indirectement des variables via leurs adresses mémoire.

challenge icon

Défi

Facile

Écrivez un programme C qui démontre le flux de travail complet des pointeurs : déclaration, affectation d'adresse et déréférencement. Votre programme doit :

  1. Déclarer une variable entière nommée value et l'initialiser avec la valeur 75
  2. Déclarer une variable flottante nommée price et l'initialiser avec la valeur 19.99
  3. Déclarer un pointeur vers un entier nommé value_ptr
  4. Déclarer un pointeur vers un flottant nommé price_ptr
  5. Utiliser l'opérateur d'adresse pour affecter l'adresse de value à value_ptr
  6. Utiliser l'opérateur d'adresse pour affecter l'adresse de price à price_ptr
  7. Utiliser l'opérateur de déréférencement pour afficher la valeur de value via value_ptr
  8. Utiliser l'opérateur de déréférencement pour afficher la valeur de price via price_ptr avec exactement 2 décimales

Votre sortie doit afficher les valeurs déréférencées dans le format suivant :

Value through pointer: 75
Price through pointer: 19.99

Le défi teste votre compréhension de la manière dont l'opérateur de déréférencement récupère la valeur de la variable d'origine en suivant l'adresse stockée par le pointeur.

Aide-mémoire

L'opérateur de déréférencement (*) vous permet d'accéder à la valeur stockée à l'adresse mémoire détenue par un pointeur.

int age = 25;
int *ptr = &age;
printf("%d", *ptr);    // Affiche 25 - la valeur de age

L'astérisque (*) a deux significations différentes en C :

  • Dans les déclarations comme int *ptr; - indique que ptr est un pointeur
  • Avec des pointeurs existants comme *ptr - déréférence le pointeur pour accéder à la valeur vers laquelle il pointe

L'opérateur de déréférencement complète le cycle du pointeur : stocker une adresse avec &, puis récupérer la valeur à cette adresse avec *.

Essayez vous-même

#include <stdio.h>

int main() {
    // TODO: Écrivez votre code ici
    // 1. Déclarer et initialiser les variables
    // 2. Déclarer les pointeurs
    // 3. Assigner les adresses aux pointeurs
    // 4. Afficher les valeurs déréférencées
    
    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 Logic & Flow