Heim  >  Artikel  >  Backend-Entwicklung  >  Welche Methoden zur Übergabe von Funktionsparametern gibt es in C++?

Welche Methoden zur Übergabe von Funktionsparametern gibt es in C++?

WBOY
WBOYOriginal
2024-04-12 09:12:011197Durchsuche

In C++ gibt es vier Möglichkeiten, Parameter zu übergeben: 1. Übergabe per Wert (Kopieren), 2. Übergabe per Referenz, 3. Übergabe per konstanter Referenz, 4. Übergabe per Zeiger. Die Übergabe von Werten und die Übergabe von Referenzen werden verwendet, um den ursprünglichen Wert zu ändern, konstante Referenzen werden für den schreibgeschützten Zugriff verwendet und die Übergabe von Zeigern wird zum Betreiben der Speicheradresse verwendet.

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

C++-Methoden zur Übergabe von Funktionsparametern

In C++ gibt es viele Möglichkeiten, Daten an Funktionen zu übergeben. Abhängig davon, ob eine Kopie des Werts oder eine Referenz auf den Wert übergeben wird, werden Parameterübergabemethoden in die folgenden Typen unterteilt:

1. Übergabe nach Wert

Übergabe einer Kopie des Werts und Änderungen an der Kopie Der ursprüngliche Wert wird nicht beeinträchtigt. Deklarationsmethode:

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

2. Übergeben Sie eine Referenz auf den Wert. Änderungen an der Referenz wirken sich auf den ursprünglichen Wert aus. Deklarationsmethode:

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

3. Die Übergabe per konstanter Referenz ähnelt der Übergabe per Referenz, der Wert, auf den die Referenz verweist, kann jedoch nicht geändert werden. Deklarationsmethode:

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

4. Übergabe des Zeigers an den Wert, auf den der Zeiger zeigt, wirkt sich auf den ursprünglichen Wert aus. Deklarationsmethode:

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

Praktischer Fall:

Das Folgende ist ein Beispiel einer C++-Funktion mit Wertübergabe und Referenzübergabe:

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

Ausgabeergebnis:

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

Hinweis:

Pass-by-Value eignet sich, wenn Sie eine Wertkopie der Situation erstellen müssen.

Die Übergabe als Referenz eignet sich für Situationen, in denen der ursprüngliche Wert des Werts in der Funktion geändert werden muss.

Konstante Referenz eignet sich für Situationen, in denen auf den Wert zugegriffen werden muss, dieser jedoch nicht geändert werden muss. Das Übergeben von Zeigern eignet sich für Situationen, in denen die Speicheradresse des Werts direkt manipuliert werden muss.

    Das obige ist der detaillierte Inhalt vonWelche Methoden zur Übergabe von Funktionsparametern gibt es in C++?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

    Stellungnahme:
    Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn