Retour au cours

Passage par valeur vs Passage par référence (Introduction)

Langage C : de Zéro à Héros - Le Guide Complet pour Débutants

Leçon 23 : Passage par valeur vs Passage par référence (Introduction)

Le C utilise principalement le Passage par valeur, mais nous pouvons simuler le passage par référence à l'aide de pointeurs (présentés officiellement plus tard).

1. Passage par valeur

Lorsqu'une variable est passée par valeur, la fonction reçoit une copie de la valeur de la variable. Toute modification apportée au paramètre à l'intérieur de la fonction n'affecte pas la variable d'origine à l'extérieur.

c #include <stdio.h>

void modifier_valeur(int x) { x = x * 2; // Modifie la COPIE de 'a' printf("Dans la fonction : x = %d\n", x); }

int main() { int a = 10; modifier_valeur(a); printf("Hors de la fonction : a = %d\n", a); // a vaut toujours 10 return 0; }

Résultat :

Dans la fonction : x = 20 Hors de la fonction : a = 10

2. Le besoin du passage par référence (Aperçu)

Et si nous avons besoin qu'une fonction modifie la valeur d'une variable externe ?

Le C y parvient en passant l'adresse mémoire de la variable (un pointeur) au lieu de sa valeur. Lorsque la fonction reçoit l'adresse, elle peut consulter et modifier l'emplacement des données d'origine.

c // Nous utiliserons des pointeurs (*) et l'opérateur d'adresse (&) ici void permuter_nombres(int *ptr_a, int *ptr_b); // ... l'implémentation ultérieure utilise des pointeurs pour modifier la mémoire ...

Cette technique est fondamentale en C et sera explorée en détail dans le module sur les pointeurs (Module 6).