DIFFÉRENCE ENTRE "BYREF" ET "BYVAL"

Lucyberad 420 Messages postés mercredi 16 juin 2004Date d'inscription 26 juillet 2007 Dernière intervention - 31 juil. 2005 à 23:53 - Dernière réponse : Whismeril 11407 Messages postés mardi 11 mars 2003Date d'inscriptionContributeurStatut 20 avril 2018 Dernière intervention
- 19 sept. 2017 à 18:51
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

http://codes-sources.commentcamarche.net/faq/182-difference-entre-byref-et-byval

Afficher la suite 
Bonsoir,

Felicitations, ça m'aide bcp.

On peut utiliser ByRef si on souhaite changer la valeur de la variable dans la function ou dans un sub ?
Et si on ne va pas pas faire de changement dans cette variable on veut tout simplement l'utiliser pour faire une operation ets-ce qu'on peut toutefois utiliser ByRef?

Merci
Merci pour cette explication simple et claire.
Whismeril 11407 Messages postés mardi 11 mars 2003Date d'inscriptionContributeurStatut 20 avril 2018 Dernière intervention > gbb - 8 mars 2017 à 23:44
Bonsoir
Deux précisions:
  • la première est importante, si aucun mots clé n'est précisé alors la variable est passée par référence.
  • la seconde est pour les curieux, les données attribuées aux variables sont en fait stockées dans un emplacement mémoire et cet emplacement est situé à une adresse dans la mémoire (on peut imaginer un casier avec un numéro). Quand on passe les données par référence, le contenu du casier est cloné dans un autre casier et l'adresse donnée à la sub est celle du casier clone. A la fin de la sub, le casier clone est vidé. Quand on passe par référence, il n'y a pas de clone, l'adresse fournie est celle du casier principal. L'adresse mémoire est aussi appelée référence. On trouve aussi le terme pointeur, en C ou C++ par exemple.
Whismeril 11407 Messages postés mardi 11 mars 2003Date d'inscriptionContributeurStatut 20 avril 2018 Dernière intervention > Whismeril 11407 Messages postés mardi 11 mars 2003Date d'inscriptionContributeurStatut 20 avril 2018 Dernière intervention - 19 sept. 2017 à 18:51
Bonjour, on me signale une coquille dans mon commentaire.

Deux précisions:
  • la première est importante, si aucun mots clé n'est précisé alors la variable est passée par référence.
  • la seconde est pour les curieux, les données attribuées aux variables sont en fait stockées dans un emplacement mémoire et cet emplacement est situé à une adresse dans la mémoire (on peut imaginer un casier avec un numéro). Quand on passe les données par valeur, le contenu du casier est cloné dans un autre casier et l'adresse donnée à la sub est celle du casier clone. A la fin de la sub, le casier clone est vidé. Quand on passe par référence, il n'y a pas de clone, l'adresse fournie est celle du casier principal. L'adresse mémoire est aussi appelée référence. On trouve aussi le terme pointeur, en C ou C++ par exemple.
Merci. Très claire comme explication. :)
Commenter la réponse de Lucyberad

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.