Salut a tous,
je débute en C, et je me pose une question a propos des pointeurs utilisés dans les fonctions.
J'ai deux pointeurs d'entier, et je souhaite en fait échanger ces pointeurs: l'un pointerai la valeur pointée par l'autre et vice versa.
Pour cela j'ai le code suivant:
Seulement ca ne marche pas et je ne comprend pas pourquoi... ca n'échange rien, pourtant si j'ai bien compris comment marchent les pointeurs, *pi représente la valeur pointée, et i représente l'adresse ou pointe le pointeur... et donc en échangeant i et j on devrai échanger les adresse pointées...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26 #include <windows.h> #include <stdio.h> void echange(int *i, int *j) { printf("\n *i = %d , i = %d", *i,i); int temp = (int)i ; i = j ; j = temp ; } int main(void) { int i = 6 ; int j = 8 ; int *pi = &i ; int *pj = &j ; printf("\nAvant échange: *pi = %d , *pj = %d", *pi,*pj); echange(pi,pj); printf("\nAprés échange: *pi = %d , *pj = %d", *pi,*pj); system("pause"); return 0 ; }
Si quelqu'un pouvai m'expliquer ce que je n'ai pas compris
Merci d'avance![]()
Partager