Bonjour à tous ,
je débute en programmation et en C++ et j'ai quelques difficultées avec les pointeurs .....
Selon ce que j'ai pu comprendre , on utilise les pointeurs avec une fonction comme ceci :
En gros pour utiliser mon pointeur dans ma fonction , je dois mettre * devant , sinon je travail non pas avec la valeur du pointeur , mais l'adresse en mémoire .
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 void triplePointeur(long *pointeurSurNombre); int main(int argc, char *argv[]) { long nombre = 5; triplePointeur(&nombre); // On envoie l'adresse de nombre à la fonction printf("%ld", nombre); // On affiche la variable nombre. La fonction a directement modifié la valeur de la variable car elle connaissait son adresse return 0; } void triplePointeur(long *pointeurSurNombre) { *pointeurSurNombre *= 3; // On multiplie par 3 la valeur de la variable nombre }
Cependant je trouve beaucoup de code comme celui-ci :
Deja première constatation , on appelle la fonctionne affiche() comme ceci :
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 // Prototype de la fonction d'affichage void affiche(long *tableau, long tailleTableau); int main(int argc, char *argv[]) { long tableau[4] = {10, 15, 3}; // On affiche le contenu du tableau affiche(tableau, 4); return 0; } void affiche(long *tableau, long tailleTableau) { long i; for (i = 0 ; i < tailleTableau ; i++) { printf("%ld\n", tableau[i]); } }
alors que moi j'aurais plutôt vu :
Code : Sélectionner tout - Visualiser dans une fenêtre à part affiche(tableau, 4);
afin de passer l'adresse au pointeur .
Code : Sélectionner tout - Visualiser dans une fenêtre à part affiche(&tableau, 4);
Ensuite , dans la fonction affiche , le pointeur tableau est utilisé sans une * devant . un peu comme on aurait pu le faire avec une référence .
Il ne faut pas écrire plutôt ceci ? :
Code : Sélectionner tout - Visualiser dans une fenêtre à part printf("%ld\n", tableau[i]);
Dans ce cas , quelle est la différence entre le pointeur et la référence ... ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part printf("%ld\n", *tableau[i]);
Merci d'avance pour votre aide .
Partager