Bonjour à tous,
Question très basique que je souhaite poser sur les pointeurs en C++:
Je comprends très bien que cette fonction n'échange pas les valeurs des deux int:
Car d'après ce que j'ai compris (corrigez-moi si je me trompe), les paramètres sont des copies des variables.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 void Echange (int a, int b) { int c; c=a; a=b; b=c; }
En revanche, je reste convaincu que celle-ci devait marcher:
Alors que celle-ci marche:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 void EchangeParPointeurMarchePas (int* a, int* b) { int* c; c=a; a=b; b=c; }
Selon moi, la deuxième méthode devrait marcher puisque je donne à la méthode deux pointeurs sur int. Je donne dans la méthode à chacun des deux pointeurs l'adresse de l'autre.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 void EchangeParPointeur (int* a, int* b) { int c; c=*a; *a=*b; *b=c; }
Pourquoi EchangeParPointeur(&a,&b) marche et pas EchangeParPointeurMarchePas(&a,&b)?
Merci d'avance d'éclairer ma lanterne.
Partager