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

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

王林
王林original
2024-04-13 17:33:01843parcourir

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

Sortie :

Before swap: a = 10, b = 20
After swap: a = 10, b = 20

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

Sortie :

Before swap: a = 10, b = 20
After swap: a = 20, b = 10

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

Sortie :

Before swap: a = 10, b = 20
After swap: a = 20, b = 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:
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