Quand mettre le "&" dans les param fonctions

Résolu/Fermé
yaorens Messages postés 205 Date d'inscription dimanche 5 avril 2009 Statut Membre Dernière intervention 30 mai 2013 - 12 août 2012 à 22:24
 Utilisateur anonyme - 13 août 2012 à 09:48
Bonjour,

excusez , j'apprends le langage c , et j'ai quelques difficultés avec les fonctions .
J'aimerais savoir dans quel cas on met un "& " dans les paramètres d'une fonction , et dans quels cas on ne dois pas le faire , le prof nous a entretnu un peu dessus en parlant de passage par valeur , resultat et par adresse ( en algorithmes ,) mais je ne comprends toujours pas .
quelqu'un pourrait t'iil m'aider ?

2 réponses

Love_Metal Messages postés 118 Date d'inscription vendredi 10 août 2012 Statut Membre Dernière intervention 2 février 2014 14
12 août 2012 à 22:34
Bonjour,

Le '&' qui précède une variable signifie l'adresse de cette variable.

Il faut mettre un '&' avant le nom d'une variable dans une fonction si :

-la fonction prend un pointeur de variable et que tu n'as qu'une variable simple à lui envoyer.
-la fonction prend un double pointeur et que tu n'as qu'un pointeur à lui envoyer.
1
Bonjour,

je confirme ce que dit Love_Metal et j'ajouterai qu'en faisant un passage par adresse, tu ne réalise pas de copie de la variable. Donc la variable que tu modifie dans la fonction via son adresse et la même que celle crée avant l'appel.
Exemple

void ajout(int *pointeur)
{
(*pointeur )++;
}

main(/*argc, argv, et cie*/)
{
int mavariable = 1;
ajout(&mavariable)
printf("%d", mavariable);
}

Le programme affiche:

2
Besoin d'aide? Dispo pour C/C++/PhP/Html5/Css3, et des bases en js, en webmatering divers et Linux
1