Maison > développement back-end > C++ > Comment passer des paramètres de fonction en C++

Comment passer des paramètres de fonction en C++

王林
Libérer: 2024-04-13 17:33:01
original
929 Les gens l'ont consulté

Il existe trois façons de transmettre des paramètres de fonction en C++ : passer une copie par valeur, passer une référence par référence et passer un pointeur par pointeur. Le passage par valeur n'affecte pas les paramètres réels, le passage par référence et pointeur le fait.

C++ 函数参数的传递方式

Comment passer des paramètres de fonction en C++

En C++, les paramètres de fonction peuvent être passés par référence, pointeur ou valeur. Voici des introductions et des exemples pratiques de chaque méthode de transmission :

Pass-by-value

Passez une copie d'un argument de fonction. Toute modification apportée à la copie n’affectera pas les paramètres réellement transmis.

void swap(int x, int y) {
  int temp = x;
  x = y;
  y = temp;
}

int main() {
  int a = 10, b = 20;
  std::cout << "Before swap: a = " << a << ", b = " << b << std::endl;
  swap(a, b);  // a 和 b 的副本被传给 swap
  std::cout << "After swap: a = " << a << ", b = " << b << std::endl;
  return 0;
}
Copier après la connexion

Sortie :

Before swap: a = 10, b = 20
After swap: a = 10, b = 20
Copier après la connexion

Pass-by-reference

Passez une référence à un argument de fonction. Toute modification de la référence affectera les paramètres réels transmis.

void swap(int &x, int &y) {
  int temp = x;
  x = y;
  y = temp;
}

int main() {
  int a = 10, b = 20;
  std::cout << "Before swap: a = " << a << ", b = " << b << std::endl;
  swap(a, b);  // a 和 b 的引用被传给 swap
  std::cout << "After swap: a = " << a << ", b = " << b << std::endl;
  return 0;
}
Copier après la connexion

Sortie :

Before swap: a = 10, b = 20
After swap: a = 20, b = 10
Copier après la connexion
Copier après la connexion

pass-by-pointer

passe le pointeur du paramètre de fonction. Toute modification de la mémoire pointée par le pointeur affectera les paramètres réellement transmis.

void swap(int *x, int *y) {
  int temp = *x;
  *x = *y;
  *y = temp;
}

int main() {
  int a = 10, b = 20;
  std::cout << "Before swap: a = " << a << ", b = " << b << std::endl;
  swap(&a, &b);  // a 和 b 的指针被传给 swap
  std::cout << "After swap: a = " << a << ", b = " << b << std::endl;
  return 0;
}
Copier après la connexion

Sortie :

Before swap: a = 10, b = 20
After swap: a = 20, b = 10
Copier après la connexion
Copier après la connexion

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!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal