C++ Aufruf per Referenz

C++-Funktionen

Die Methode der Parameterübergabe an eine Funktion,Aufruf per Referenz, kopiert die Adresse der Referenz in den formalen Parameter. Innerhalb der Funktion wird die Referenz verwendet, um auf die tatsächlichen Argumente zuzugreifen, die im Aufruf verwendet werden. Das bedeutet, dass eine Änderung des formalen Parameters das tatsächliche Argument beeinflusst.

Bei der Übergabe per Referenz wird die Parameterreferenz an die Funktion übergeben, genau wie andere Werte an eine Funktion übergeben werden. Daher müssen Sie dementsprechend in der folgenden Funktionswap()die Funktionsparameter als Referenztypen deklarieren. Diese Funktion wird verwendet, um die Werte der beiden Integer-Variablen, auf die die Parameter verweisen, zu vertauschen.

// 函数定义
void swap(int &x, int &y)
{
   int temp;
   temp = x; /* 保存地址 x 的值 */
   x = y;    /* 把 y 赋值给 x */
   y = temp; /* 把 x 赋值给 y  */
  
   return;
}

Nun rufen wir die Funktion auf, indem wir Werte per Referenz übergebenswap():

Beispiel

#include <iostream> using namespace std; // Funktionsdeklaration void swap(int &x, int &y); int main () { // Deklaration lokaler Variablen int a = 100; int b = 200; cout << "Vor dem Tausch, Wert von a:" << a << endl; cout << "Vor dem Tausch, Wert von b:" << b << endl; /*Rufe die Funktion auf, um Werte zu tauschen*/ swap(a, b); cout << "Nach dem Tausch, Wert von a:" << a << endl; cout << "Nach dem Tausch, Wert von b:" << b << endl; return 0; } // Funktionsdefinition void swap(int &x, int &y) { int temp; temp = x; /*Speichere den Wert an Adresse x*/ x = y; /*y an x zuweisen*/ y = temp; /*x an y zuweisen*/ return; }

Wenn der obige Code kompiliert und ausgeführt wird, liefert er die folgenden Ergebnisse:

交换前,a 的值: 100
交换前,b 的值: 200
交换后,a 的值: 200
交换后,b 的值: 100

Kernpunkte

  1. Referenzdefinition: durch die Verwendung von&Symbol zur Definition eines Referenztyps, zum Beispielint &ref。
  2. Übergabe per Referenz: Verwenden Sie Referenztypen in der Parameterliste der Funktion, sodass Änderungen innerhalb der Funktion die tatsächlich übergebenen Variablen beeinflussen.
  3. Kopieraufwand vermeiden: Die Übergabe per Referenz vermeidet den Kopieraufwand beim Übergeben großer Objekte und verbessert die Effizienz.

Anwendungsszenarien des Aufrufs per Referenz

  • Externe Variablen ändern: Wie im obigen Beispiel gezeigt, ändern Sie die übergebenen Variablen durch die Funktion.
  • Aufwand reduzieren: Besonders beim Übergeben großer Objekte oder komplexer Datenstrukturen kann die Übergabe per Referenz unnötige Kopiervorgänge vermeiden.
  • Rückgabewertoptimierung: Die Rückgabe einer lokalen Variablen einer Funktion per Referenz vermeidet den Aufwand des Kopierens des Rückgabewerts.

Der Aufruf per Referenz ist eine wichtige Technik in C++, die die Effizienz und Flexibilität des Codes verbessern kann. Das Verstehen und Beherrschen des Aufrufs per Referenz ist sehr hilfreich für das Schreiben effizienter C++-Programme.

C++-Funktionen

Weitere Erweiterungen