Passage par reference
Résolu/Fermé
matafix
Messages postés
45
Date d'inscription
samedi 1 décembre 2007
Statut
Membre
Dernière intervention
23 janvier 2009
-
12 mars 2008 à 21:49
matafix Messages postés 45 Date d'inscription samedi 1 décembre 2007 Statut Membre Dernière intervention 23 janvier 2009 - 14 mars 2008 à 20:52
matafix Messages postés 45 Date d'inscription samedi 1 décembre 2007 Statut Membre Dernière intervention 23 janvier 2009 - 14 mars 2008 à 20:52
A voir également:
- Passage par reference
- Reference pto - Guide
- Passage qwerty azerty - Guide
- Passage windows 7 à 10 - Guide
- Excel info bulle passage souris ✓ - Forum Excel
- Reference assemblies ✓ - Forum Windows 7
2 réponses
Salut Matafix,
si mes souvenirs sont bons, et ils doivent l'être :-)) , un passage par référence, contrairement à un passage par valeur, c'est quand tu utilises un pointeur vers une variable plutôt que la variable elle-même.
Je te fais un petit exemple, une multiplication à trois paramètres.
function multipli(int a, int b, int *c) { a et b par valeur, c par reference
(*c) = a * b;
}
Fonction que tu appelleras ainsi : multipli(val1,val2,&resultat) valeurs de val1 et val2, adresse de resultat
L'usage c'est pour avoir des paramètres en retour de fonction.
Une fonction ne renvoye qu'un résultat, si tu en veux plusieurs, passe ces paramètres par référence.
Bon courage, Greg.
si mes souvenirs sont bons, et ils doivent l'être :-)) , un passage par référence, contrairement à un passage par valeur, c'est quand tu utilises un pointeur vers une variable plutôt que la variable elle-même.
Je te fais un petit exemple, une multiplication à trois paramètres.
function multipli(int a, int b, int *c) { a et b par valeur, c par reference
(*c) = a * b;
}
Fonction que tu appelleras ainsi : multipli(val1,val2,&resultat) valeurs de val1 et val2, adresse de resultat
L'usage c'est pour avoir des paramètres en retour de fonction.
Une fonction ne renvoye qu'un résultat, si tu en veux plusieurs, passe ces paramètres par référence.
Bon courage, Greg.
matafix
Messages postés
45
Date d'inscription
samedi 1 décembre 2007
Statut
Membre
Dernière intervention
23 janvier 2009
2
14 mars 2008 à 20:52
14 mars 2008 à 20:52
merci ta solution est utile
12 mars 2008 à 22:42
j'ai creer une fonction en utilisant un passage par reference mais le compilateur m'envoie les erreurs suivantes:
47 E:\ABDELLAH\struct\tabstuck.cpp cannot convert `pile' to `pile*' for argument `1' to `void empile(pile*, typeEl)'
56 E:\ABDELLAH\struct\tabstuck.cpp cannot convert `pile' to `pile*' for argument `1' to `void depile(pile*)'
peut tu m'aider stp, voila la fonction
int test(pile &p,char ch[20])
{int i,res;
for(i=0;ch[i]!='/0';i++)
{if(((ch[i]=='(')||(ch[i]=='['))&&(!estPleine(p)))
empile(p,ch[i]);
else
if((ch[i]==')')&&(!estVide(p)))
if(p.t[p.sm]==')')
depile(p);
else
res=false;
if((ch[i]==']')&&(!estVide(p)))
if(p.t[p.sm]=='}')
depile(p);
else
res=false;
}
return res;
}
12 mars 2008 à 22:59
int test(pile &p,char ch[20])
déjà tu ne peux pas mettre une adresse & mais un pointeur *
int test(pile *p, char ch[20])
ensuite il te mettra aussi un message pour ta chaine de caractère, on ne peut contraindre sa taille à 20 !!!
int test(pile *p, char ch[])
De même, dépile qui fonctionne aussi avec pointeur, tu ne dois pas mettre depile(p) mais depile(&p), en fait je suppose car je n'ai pas les sources.
A++