Maison >développement back-end >C++ >Quelles sont les méthodes de transmission des paramètres de fonction en C++ ?

Quelles sont les méthodes de transmission des paramètres de fonction en C++ ?

WBOY
WBOYoriginal
2024-04-12 09:12:011237parcourir

En C++, il existe quatre façons de transmettre des paramètres : 1. Passer par valeur (copie) 2. Passer par référence 3. Passer par référence constante 4. Passer par pointeur. Le passage par valeur et le passage par référence sont utilisés pour modifier la valeur d'origine, la référence constante est utilisée pour l'accès en lecture seule et le passage par pointeur est utilisé pour exploiter l'adresse mémoire.

C++ 函数参数传递方式有哪些?

Méthodes de transmission des paramètres de fonction C++

En C++, il existe de nombreuses façons de transmettre des données aux fonctions. Selon qu'une copie de la valeur ou une référence à la valeur est transmise, les méthodes de transmission de paramètres sont divisées dans les types suivants :

1 Passer par valeur

Transmettre une copie de la valeur et des modifications à la copie. ne sera pas affecté par la valeur originale. Méthode de déclaration :

void f(int a); // 传递 a 的副本

2. Passer par référence

Passez une référence à la valeur, et les modifications apportées à la référence affecteront la valeur d'origine. Méthode de déclaration :

void f(int& a); // 传递 a 的引用

3. Passer par référence constante

est similaire au passage par référence, mais la valeur pointée par la référence ne peut pas être modifiée. Méthode de déclaration :

void f(const int& a); // 传递 a 的常引用

4. Passer par le pointeur

Passer le pointeur à la valeur La modification de la valeur pointée par le pointeur affectera la valeur d'origine. Méthode de déclaration :

void f(int* a); // 传递 a 的指针

Cas pratique :

Voici un exemple de fonction C++ utilisant le passage par valeur et le passage par référence :

#include <iostream>

// 传值
void swapValue(int a, int b) {
  int temp = a;
  a = b;
  b = temp;
}

// 传引用
void swapReference(int& a, int& b) {
  int temp = a;
  a = b;
  b = temp;
}

int main() {
  int x = 1, y = 2;

  std::cout << "Before swapValue: x = " << x << ", y = " << y << std::endl;
  swapValue(x, y);
  std::cout << "After swapValue: x = " << x << ", y = " << y << std::endl;

  std::cout << "Before swapReference: x = " << x << ", y = " << y << std::endl;
  swapReference(x, y);
  std::cout << "After swapReference: x = " << x << ", y = " << y << std::endl;

  return 0;
}

Résultat de sortie :

Before swapValue: x = 1, y = 2
After swapValue: x = 1, y = 2
Before swapReference: x = 1, y = 2
After swapReference: x = 2, y = 1

Remarque :

  • Le passage par valeur convient lorsque vous devez créer une copie de valeur de la situation.
  • Le passage par référence convient aux situations où la valeur d'origine de la valeur dans la fonction doit être modifiée.
  • La référence constante convient aux situations où la valeur doit être accessible mais n'a pas besoin d'être modifiée.
  • Le passage de pointeurs convient aux situations où l'adresse mémoire de la valeur doit être directement manipulée.

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