Maison >développement back-end >C++ >Technologie de passage de paramètres en C/C++
En C, nous pouvons transmettre des arguments de deux manières différentes. Ce sont des appels par valeur et des appels par adresse et en C++, nous pouvons obtenir une autre technique. C'est ce qu'on appelle l'appel par référence. Jetons un coup d'œil à leurs effets et à leur fonctionnement.
Nous verrons d’abord l’appel par valeur. Dans cette technique, les paramètres sont copiés dans les paramètres de fonction. Ainsi, si une modification est apportée, cela mettra à jour la valeur copiée, et non la valeur réelle.
#include <iostream> using namespace std; void my_swap(int x, int y) { int temp; temp = x; x = y; y = temp; } int main() { int a, b; a = 10; b = 40; cout << "(a,b) = (" << a << ", " << b << ")\n"; my_swap(a, b); cout << "(a,b) = (" << a << ", " << b << ")\n"; }
(a,b) = (10, 40) (a,b) = (10, 40)
L'appel par adresse fonctionne en passant l'adresse d'une variable dans une fonction. Par conséquent, lorsque la fonction met à jour la valeur pointée par cette adresse, la valeur réelle est automatiquement mise à jour.
#include <iostream> using namespace std; void my_swap(int *x, int *y) { int temp; temp = *x; *x = *y; *y = temp; } int main() { int a, b; a = 10; b = 40; cout << "(a,b) = (" << a << ", " << b << ")\n"; my_swap(&a, &b); cout << "(a,b) = (" << a << ", " << b << ")\n"; }
(a,b) = (10, 40) (a,b) = (40, 10)
Identique à l'appel d'adresse, nous utilisons ici l'appel de référence. Il s'agit d'une fonctionnalité spécifique au C++. Nous devons transmettre la variable de référence du paramètre, donc pour la mettre à jour, la valeur réelle sera mise à jour. Uniquement dans la définition de la fonction, nous devons mettre & avant le nom de la variable.
#include <iostream> using namespace std; void my_swap(int &x, int &y) { int temp; temp = x; x = y; y = temp; } int main() { int a, b; a = 10; b = 40; cout << "(a,b) = (" << a << ", " << b << ")\n"; my_swap(a, b); cout << "(a,b) = (" << a << ", " << b << ")\n"; }
(a,b) = (10, 40) (a,b) = (40, 10)
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!