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 :

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
}
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 .

Cependant je trouve beaucoup de code comme celui-ci :

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]);
    }
}
Deja première constatation , on appelle la fonctionne affiche() comme ceci :
alors que moi j'aurais plutôt vu :
afin de passer l'adresse au pointeur .

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 .
Code : Sélectionner tout - Visualiser dans une fenêtre à part
printf("%ld\n", tableau[i]);
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 ... ?

Merci d'avance pour votre aide .