A quoi sert "&"!!

ili chamad Messages postés 4 Date d'inscription lundi 26 septembre 2005 Statut Membre Dernière intervention 6 mai 2006 - 29 sept. 2005 à 20:06
magic_Nono Messages postés 1878 Date d'inscription jeudi 16 octobre 2003 Statut Membre Dernière intervention 16 mars 2011 - 30 sept. 2005 à 15:31
bonjour,,,,,
je voudrai svoir quand il faut utiliser les references comme variables ou parametres dans les fonctions.....
merci,,,,,

2 réponses

cs_Joky Messages postés 1787 Date d'inscription lundi 22 novembre 2004 Statut Membre Dernière intervention 31 janvier 2009 2
29 sept. 2005 à 20:16
Un exemple :

void Modif(int i){i++;}



void Modif2(int &i){i++;}



int main()

{

int a=5;

Modif(a);

printf("a : %i\n", a);

Modif2(a);

printf("a : %i\n", a);



system("pause");

return 0;

}



ça renvoit :

a : 5

a : 6



La premiere fonction qui prend un entier comme paramètre ne modifie pas
directement la variable. Elle copie la valeur dans une autre variable
et la modifie tout le long de la fonction

Tandis que la fonction Modif2 qui prend l'adresse mémoire d'un entier,
ne recopie pas la variable mais modifie directement depuis l'adresse
mémoire.

D'ou les résultats !


if(!Meilleur("Joky")) return ERREUR;
0
magic_Nono Messages postés 1878 Date d'inscription jeudi 16 octobre 2003 Statut Membre Dernière intervention 16 mars 2011
30 sept. 2005 à 15:31
ça peux surtout accélérer ton exécution:





int f(const A a,const B&b,C c, D &d,E*pE)

{..}



pour A & C : l'objet entier est recopié

pour B & D & E: seule l'adresse est recopiée

avec D & E , tu peux modifier ton objet



par habitude, je n'utilise jamais l'écriture D

car juste en regardant l'appel de f, on ne se doute pas que 'd' puisse etre modifié.
___________________________________________________________
Magicalement
Nono
0
Rejoignez-nous