Petite explication détaillé de l'échange:
Au début, dans mon main(), a=10 et b=5
Au début de la fonction d'échange, on a donc:
pa = &a et pb = &b, *pa = 10 et *pb = 5.
Et temp n'est pas initialisé.
Donc, résumé et déroulement:
/* Début de la fonction */
. a=10
. b=5
. pa=&a
. pb=&b
. *pa=10
. *pb=5
. temp=??
. a=10
. b=5
. pa=&a
. pb=&b
. *pa=10
. *pb=5
. temp=10
. a=5
. b=5
. pa=&a
. pb=&b
. *pa=5
. *pb=5
. temp=10
. a=5
. b=10
. pa=&a
. pb=&b
. *pa=5
. *pb=10
. temp=10
Le trait horizontal symbolisant la limite de portée de la fonction, on voit bien que grâce aux pointeurs, la fonction modifie des variables se trouvant hors de sa portée.
À la fin, les valeurs de a et de b ont bien été échangées.
Partager