Maison >développement back-end >C++ >Technologie de passage de paramètres en C/C++

Technologie de passage de paramètres en C/C++

WBOY
WBOYavant
2023-08-31 13:41:06824parcourir

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.

Exemple

#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";
}

Sortie

(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.

Exemple

#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";
}

Sortie

(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.

Exemple

#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";
}

Sortie

(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!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer