Maison  >  Article  >  Quelle est la différence entre le passage par valeur et le passage par adresse ?

Quelle est la différence entre le passage par valeur et le passage par adresse ?

coldplay.xixi
coldplay.xixioriginal
2021-02-25 11:32:2015038parcourir

La différence entre le passage par valeur et le passage par adresse : 1. En passant par valeur, le paramètre de fonction est poussé sur la pile, et toute modification est appliquée à la copie et non à la variable d'origine ; Passage par valeur Ce qui est placé sur la pile à l'adresse est une copie de la variable de pointeur. Lorsque vous effectuez une opération de pointeur sur le pointeur, sa valeur pointe vers la variable d'origine.

Quelle est la différence entre le passage par valeur et le passage par adresse ?

L'environnement d'exploitation de cet article : système Windows 7, ordinateur Dell G3.

La différence entre le passage par valeur et le passage par adresse :

1 En passant par valeur, les paramètres de la fonction sont poussés sur la pile et toutes les modifications sont effectuées. sur la copie, n'a aucun effet sur les variables d'origine.

2. Ce qui est poussé sur la pile lors du transfert d'adresse est une copie de la variable du pointeur lorsque vous opérez sur le pointeur, sa valeur pointe vers la variable d'origine, donc la variable d'origine est exploitée.

Quelle est la différence entre le passage par valeur et le passage par adresse ?

Informations étendues

Il existe trois façons de transmettre des paramètres dans les fonctions : le passage par valeur, le passage par adresse et le passage par référence.

1. Passer par valeur

(1) Les paramètres formels et les paramètres réels occupent chacun un espace de stockage indépendant.

(2) L'espace de stockage des paramètres formels est alloué lorsque la fonction est appelée. Lorsque l'appel démarre, le système ouvre une zone de stockage temporaire pour les paramètres formels, puis transmet chaque paramètre réel au paramètre formel. . C'est le paramètre formel. La valeur du paramètre réel est obtenue.

2. Transfert d'adresse

La différence entre le transfert d'adresse et le transfert de valeur est qu'il transfère l'adresse de stockage du paramètre réel au paramètre formel, de sorte que le pointeur de paramètre formel et le paramètre réel le pointeur pointe vers la même adresse. Par conséquent, toute modification de l'adresse pointée par le pointeur de paramètre formel dans la fonction appelée affectera les paramètres réels.

3. Passage par référence

Le passage par référence prend une référence comme paramètre, ce qui permet non seulement à toute opération sur les paramètres formels de modifier les données correspondantes, mais rend également les appels de fonction pratiques. Passer par référence consiste à ajouter l'opérateur de référence "&" avant l'appel formel du paramètre.

fait référence à un alias d'un paramètre réel. S'il s'agit de la même variable que le paramètre réel, leurs valeurs seront également les mêmes. Si la référence change, son paramètre réel changera également.

Recommandations gratuites associées : Cours vidéo de programmation

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn