Maison  >  Article  >  développement back-end  >  Quels sont les mécanismes de transmission des paramètres de fonction C++ ?

Quels sont les mécanismes de transmission des paramètres de fonction C++ ?

王林
王林original
2024-04-11 12:30:01517parcourir

Le mécanisme de transmission des paramètres de fonction C++ est divisé en transmission par valeur et transmission par référence. Le passage par valeur crée une copie de la valeur du paramètre. Les modifications apportées à la copie n'affectent pas le paramètre d'origine. Utilisé pour les types de données de base. Passer par référence transmet directement l'adresse du paramètre, permettant à la fonction de modifier le paramètre d'origine, pour les types complexes.

C++ 函数参数传递机制有哪些?

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

En C++, le mécanisme de transmission des paramètres détermine comment une fonction reçoit les paramètres transmis par l'appelant. Il existe deux mécanismes : le passage par valeur et le passage par référence.

Pass by value

Pass by value crée une copie de la valeur du paramètre et la copie est stockée dans le cadre de pile de la fonction. Toute modification apportée à la copie n'affectera pas les paramètres réels de la fonction appelante. Le passage par valeur est généralement utilisé pour les types de données primitifs (int, float, etc.).

Exemple de code :

void increment(int value) {
  value++; // 修改局部副本
}

int main() {
  int a = 5;
  increment(a);
  std::cout << a << std::endl; // 输出 5,因为 a 的值没有改变
}

Pass by reference

Pass by référence ne crée pas de copie du paramètre, mais transmet à la place l'adresse du paramètre lui-même par référence. Cela permet aux fonctions de modifier directement les paramètres d'origine dans la fonction appelante. Le passage par référence est généralement utilisé pour les types complexes (objets, conteneurs, etc.).

Exemple de code :

void increment(int& value) {
  value++; // 修改原始参数
}

int main() {
  int a = 5;
  increment(a);
  std::cout << a << std::endl; // 输出 6,因为原始参数被修改
}

Cas pratique

Exemple de passage par valeur : Calculer le carré du paramètre de la fonction.

int square(int value) {
  return value * value;
}

int main() {
  int a = 5;
  int result = square(a);
  std::cout << result << std::endl; // 输出 25,因为按值传递不会影响 a
}

Exemple de passage par référence : Échangez les valeurs de deux paramètres de fonction.

void swap(int& a, int& b) {
  int temp = a;
  a = b;
  b = temp;
}

int main() {
  int a = 5;
  int b = 10;
  swap(a, b);
  std::cout << "a = " << a << ", b = " << b << std::endl; // 输出 a = 10, b = 5,因为按引用传递修改了原始参数
}

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