Passage par valeur et par reference

Signaler
Messages postés
39
Date d'inscription
mercredi 25 août 2004
Statut
Membre
Dernière intervention
13 novembre 2004
-
Messages postés
3011
Date d'inscription
jeudi 26 septembre 2002
Statut
Membre
Dernière intervention
27 novembre 2004
-
Quelle est la difference des 2 moyens de passer des
valeurs mais surtout leur interet respectif et dans quel cas
emploie t on l'un ou l'autre

6 réponses

Messages postés
2671
Date d'inscription
vendredi 25 janvier 2002
Statut
Membre
Dernière intervention
6 février 2013
2
Le passage par valeur signifie que tu passes en parametres toutes les données contenues dans ma variable.
Si ta varaibles est "enorme", le passage par valeur va "handicapé" le programme d'un point de vue performance.

A l'inverse le passage par référence est similaire au passage par pointeur.
Tu indiques la position en mémoire du premier élément de ta variable.
Ainsi quelques soit la taille de ta varaible, tu n'auras que l'adresse de passé en parametres ce qui est un gain en performance pour les grosse variable.
De plus, connetant l'adresse de la varaible, tu peux modifier sa valeur par l'intermediaire de ta fonction.

Shell
Messages postés
1160
Date d'inscription
vendredi 23 juillet 2004
Statut
Membre
Dernière intervention
21 octobre 2010
17
attention, tu n'as pas tout dit. pour simplifier encore plus ce qu'a dit deathcrash, lorsque tu passe par valeur, la fonction possedera une copie de l'objet passé en parametre, sinon par reference, la fonction possedera l'adresse de l'original. il y a donc entre les 2 une difference de place en memoire, de performance dans certains cas (un char passé par reference, tu passe 4 octets au lieu de 1, mais si tu veux travailler sur l'original, il vaut mieux faire comme ca). voila, en esperant que ca t'eclaire...
Messages postés
21042
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
25
Dans tous les cas, on passe toujours 4 octets par parametre.

ciao...
BruNews, Admin CS, MVP VC++
Messages postés
1160
Date d'inscription
vendredi 23 juillet 2004
Statut
Membre
Dernière intervention
21 octobre 2010
17
par reference tu as voulu dire brunews....
Messages postés
21042
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
25
par reference ou autre, la func a beau prendre 'char' en param, on lui PUSH dans tous las cas 4 octets.

ciao...
BruNews, Admin CS, MVP VC++
Messages postés
3011
Date d'inscription
jeudi 26 septembre 2002
Statut
Membre
Dernière intervention
27 novembre 2004
8
on emploie le passage par reference au maximun, comme l'utilisation du passage par pointeur en c, et pour le retour par reference, il faut que l'objet retourner existe dans le contexte appelant, c'est à dire qu'il ne soit pas detruit à la fin de la fonction