Pointeur
- Un pointeur
ptr
est déclaré. Il est conçu pour stocker l'adresse d'une variable de typeint
. &var
obtient l'adresse de la variablevar
, etptr = &var
assigne cette adresse au pointeur.*ptr
est utilisé pour accéder à la valeur à l'adresse stockée dans le pointeur, affichant ainsi la valeur devar
.
Un cas simple et classique de l'utilisation des pointeurs en C est le passage d'arguments par référence à une fonction. Cela permet à la fonction de modifier la valeur des arguments passés, ce qui est impossible avec un passage d'arguments par valeur (le mode par défaut en C).
Imaginons que vous vouliez écrire une fonction qui échange les valeurs de deux variables. Sans pointeurs, vous ne pourriez pas faire cela directement, car toute modification à une variable passée à une fonction serait locale à cette fonction. Mais avec les pointeurs, vous pouvez passer les adresses des variables et modifier leurs valeurs directement.
Voici un exemple simple :
Dans cet exemple :
-
Fonction
swap
: Prend deux pointeursint *x
etint *y
comme arguments, qui sont les adresses des variablesa
etb
. -
Echange des valeurs : Dans
swap
,*x
et*y
permettent d'accéder aux valeurs stockées aux adresses pointées parx
ety
, respectivement. La fonction échange ces valeurs. -
Passage des adresses : Lorsque vous appelez
swap(&a, &b)
, vous passez les adresses dea
etb
, permettant à la fonctionswap
de modifier les variables originales.
Ce cas illustre bien la puissance des pointeurs en permettant des modifications directes sur les variables passées à une fonction, ce qui serait impossible autrement en C.