Quelle est la différence entre l'appel par adresse et l'appel par référence

Table des matières:

Anonim

Les différence principale entre l'appel par adresse et l'appel par référence est que dans l'appel par adresse, l'adresse d'un argument se copie dans le paramètre formel de la fonction tandis que, dans l'appel par référence, la référence d'un argument se copie dans le paramètre formel de la fonction.

Généralement, une fonction est un ensemble d'instructions qui permet d'effectuer une tâche plusieurs fois. Une fonction permet de rendre le programme plus lisible. Dans les langages de programmation, tels que C++, l'exécution commence à partir de la méthode principale, et il est possible d'appeler les autres fonctions ou méthodes à partir de la méthode principale. Ces langages ont différentes méthodes pour appeler une fonction. Deux de ces méthodes en C++ sont « appel par adresse » et « appel par référence ».

C++, appel par adresse, appel par pointeurs, appel par référence, fonction, pointeur, référence

Qu'est-ce que l'appel par adresse

Appeler par adresse est également connu sous le nom de pointeurs d'appel. Dans cette méthode, le programmeur passe les adresses des arguments réels aux paramètres formels. Ensuite, la fonction utilise les adresses pour accéder aux arguments réels. En d'autres termes, les modifications apportées aux paramètres formels affectent les arguments réels. Pour passer la valeur par pointeur, les pointeurs d'argument sont passés aux fonctions similaires à toute autre valeur. Un exemple de programme est le suivant.

Figure 1: programme C++ avec appel par adresse

Il y a deux nombres entiers dans le programme principal: a' et 'b'. Les adresses de « a » et « b » sont transmises à la fonction. Ainsi, la fonction obtient ces adresses. Et, la variable temp permet d'échanger les deux valeurs. Ensuite, la fonction opère sur les valeurs réelles en utilisant les adresses. Par conséquent, nous pouvons observer que les modifications apportées à l'intérieur de la fonction sont visibles dans le programme principal. Enfin, nous pouvons voir que les deux valeurs sont permutées. Maintenant, « a » en a 20 et « b » en a 10.

Qu'est-ce que l'appel par référence

Avant de comprendre le concept d'appel par référence, il est important de comprendre le concept de variables de référence. Supposons le code ci-dessous.

un entier = 10;

entier &b= a;

Ici, b est une variable de référence. Ces variables n'occupent pas d'espace mémoire propre. Par conséquent, il partage la mémoire de la variable déjà allouée. En d'autres termes, b partage la mémoire de a. Lorsque le programmeur modifie la variable réelle, la variable de référence change également. Si le programmeur change a, cela se reflète dans b, et s'il change b, alors a utilisera cette nouvelle valeur de b. De même, les variables de référence permettent d'économiser de la mémoire.

Dans l'appel par référence, les références des arguments se copient dans les paramètres formels. A l'intérieur de la fonction, le programmeur peut utiliser les références pour accéder aux arguments réels. Par conséquent, les modifications apportées au paramètre affectent l'argument réel. De plus, pour passer la valeur par référence, l'argument référence est passé aux fonctions comme n'importe quelle autre valeur.

Figure 2: programme C++ avec appel par référence

Dans le programme principal, il y a deux nombres entiers dans le programme principal: « a » et « b ». Ces deux valeurs sont transmises à la fonction swap. Dans la fonction d'échange, p et q sont des paramètres formels. Les &p et &q indiquent qu'il s'agit de variables de référence. Ensuite, la fonction d'échange modifie les valeurs. Enfin, les valeurs échangées s'affichent sur la console.

Différence entre l'appel par adresse et l'appel par référence

Définition

Appeler par adresse est un moyen d'appeler une fonction dans laquelle l'adresse des arguments réels est copiée dans les paramètres formels. Mais, l'appel par référence est une méthode pour passer des arguments à une fonction en copiant la référence d'un argument dans le paramètre formel. C'est donc la différence entre Appel par adresse et Appel par référence.

Fonctionnalité

Allocation de mémoire

En outre, dans l'appel par adresse, la mémoire est allouée à la fois pour les arguments réels et les paramètres formels alors que, dans l'appel par référence, la mémoire est allouée uniquement pour les arguments réels et les paramètres formels partagent cette mémoire.

Conclusion

En bref, l'appel par adresse et l'appel par référence sont deux méthodes pour transmettre des valeurs à une fonction. le différence principale entre l'appel par adresse et l'appel par référence est que dans l'appel par adresse, l'adresse d'un argument est copiée dans le paramètre formel de la fonction tandis que, dans l'appel par référence, la référence d'un argument est copiée dans le paramètre formel de la fonction.

Les références:

1.Gupta, Sanjay. 07 C Appel par valeur, appel par adresse et appel par référence Méthodes d'appel de fonction, YouTube, 3 janvier 2017, disponible ici. 2.Tutorialspoint.com. « Appel de fonction C par pointeur ». Www.tutorialspoint.com, disponible ici. 3.Tutorialspoint.com. « Appel de fonction C par référence ». Www.tutorialspoint.com, disponible ici.

Quelle est la différence entre l'appel par adresse et l'appel par référence