C vous permet de créer une situation dans laquelle plusieurs pointeurs font référence exactement au même endroit en mémoire. Vous pouvez déclarer plusieurs pointeurs et les faire cibler tous la même variable. Ce n’est pas seulement une bizarrerie théorique. Cela arrive constamment dans le code réel.
Considérez cet extrait :
Ici, « p » récupère l’adresse de « i ». q fait la même chose. Alors r prend la valeur de p. Puisque p contient l’adresse de i, r pointe désormais également vers i. L’opérateur d’affectation copie l’adresse du côté droit vers le côté gauche. Il ne copie pas les données. Il copie l’emplacement.
Une fois ces lignes exécutées, « i » a effectivement obtenu des alias. Vous pouvez maintenant accéder à l’entier « i » via son nom d’origine ou via l’un des pointeurs.
La variable i a désormais quatre noms : i, *p, *q et *r.
Il n’y a pas de limite stricte quant au nombre de pointeurs pouvant contenir la même adresse. Vous pouvez les enchaîner aussi profondément que nécessaire. Modifiez *p et *r voit le changement. Ils regardent tous la même cellule mémoire.
N’importe quel nombre de pointeurs peut pointer vers la même adresse.
Ce comportement est fondamental pour le fonctionnement des pointeurs. Ce n’est pas un cas particulier. C’est la valeur par défaut. Comprendre cela vous aide à éviter toute confusion lors du débogage. Si vous voyez des valeurs inattendues, vérifiez si plusieurs pointeurs modifient le même emplacement. Ce n’est pas magique. C’est juste un souvenir.


























