Menu
Coddy logo textTech

Modifier des variables via des pointeurs

Fait partie de la section Logique & Flux du Journey C de Coddy. Leçon 27 sur 63.

Vous pouvez maintenant exploiter toute la puissance des pointeurs : modifier la variable originale par l’intermédiaire d’une fonction. Lorsque vous transmettez un pointeur à une fonction, celle-ci peut utiliser l’opérateur de déréférencement pour modifier la valeur stockée à cette adresse mémoire.

À l’intérieur de la fonction, vous déréférencez le pointeur à l’aide de l’opérateur * pour accéder à la valeur de la variable d’origine et la modifier. Cette technique est appelée passage par référence, car vous transmettez une référence à l’emplacement de la variable en mémoire.

void doubleValue(int *ptr) {
    *ptr = *ptr * 2;  // Dereference to modify the original value
}

int main() {
    int x = 5;
    doubleValue(&x);  // Passe l'adresse de x
    // x vaut maintenant 10 !
    return 0;
}

La clé consiste à utiliser *ptr à gauche de l’affectation pour modifier la valeur à l’adresse mémoire détenue par le pointeur. Cela permet aux fonctions de modifier définitivement les variables de la fonction appelante, ouvrant ainsi des possibilités de programmation puissantes que le passage par valeur ne peut tout simplement pas offrir.

challenge icon

Défi

Facile

Écrivez un programme en C qui montre comment modifier des variables à l’aide de pointeurs en créant une fonction qui triple la valeur d’un entier.

Votre programme doit :

  1. Créer une fonction nommée tripleValue qui prend un pointeur vers un entier comme paramètre
  2. À l’intérieur de la fonction tripleValue, utiliser l’opérateur de déréférencement pour multiplier par 3 la valeur située à l’adresse mémoire
  3. À l’intérieur de la fonction tripleValue, afficher la nouvelle valeur au format suivant : Value tripled to: [value]
  4. Dans la fonction main, déclarer une variable entière nommée number et l’initialiser avec la valeur 8
  5. Afficher la valeur d’origine au format suivant : Original value: [value]
  6. Appeler la fonction tripleValue et lui transmettre l’adresse de la variable number à l’aide de l’opérateur « adresse de »
  7. Après l’appel de la fonction, afficher la valeur finale de number au format suivant : Final value: [value]

Votre sortie doit montrer que la fonction modifie correctement la variable d’origine par l’intermédiaire du pointeur :

Original value: 8
Value tripled to: 24
Final value: 24

Ce défi montre la puissance du passage par référence à l’aide de pointeurs : la fonction peut modifier définitivement la variable d’origine en déréférençant le pointeur et en changeant la valeur située à cet emplacement mémoire.

Essayez vous-même

#include <stdio.h>

// TODO: Écrivez votre fonction tripleValue ici

int main() {
    // TODO: Écrivez votre code ici
    // Déclarez et initialisez la variable number
    // Print the original value
    // Appelez la fonction tripleValue
    // Affichez la valeur finale
    
    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 Logique & Flux

Entraînez-vous par vous-même : Compilateur C en ligne