Passage par valeur et par reference

jfk20004 Messages postés 39 Date d'inscription mercredi 25 août 2004 Statut Membre Dernière intervention 13 novembre 2004 - 25 août 2004 à 19:09
cs_djl Messages postés 3011 Date d'inscription jeudi 26 septembre 2002 Statut Membre Dernière intervention 27 novembre 2004 - 26 août 2004 à 00:21
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

DeAtHCrAsH Messages postés 2670 Date d'inscription vendredi 25 janvier 2002 Statut Membre Dernière intervention 6 février 2013
25 août 2004 à 19:57
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
0
leprov Messages postés 1160 Date d'inscription vendredi 23 juillet 2004 Statut Membre Dernière intervention 21 octobre 2010 17
25 août 2004 à 20:21
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...
0
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
25 août 2004 à 20:25
Dans tous les cas, on passe toujours 4 octets par parametre.

ciao...
BruNews, Admin CS, MVP VC++
0
leprov Messages postés 1160 Date d'inscription vendredi 23 juillet 2004 Statut Membre Dernière intervention 21 octobre 2010 17
25 août 2004 à 20:31
par reference tu as voulu dire brunews....
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
25 août 2004 à 20:35
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++
0
cs_djl Messages postés 3011 Date d'inscription jeudi 26 septembre 2002 Statut Membre Dernière intervention 27 novembre 2004 7
26 août 2004 à 00:21
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
0
Rejoignez-nous