Maison > développement back-end > C++ > le corps du texte

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

王林
Libérer: 2024-04-11 12:30:01
original
560 Les gens l'ont consulté

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 的值没有改变
}
Copier après la connexion

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,因为原始参数被修改
}
Copier après la connexion

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
}
Copier après la connexion

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,因为按引用传递修改了原始参数
}
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
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!