Heim > Backend-Entwicklung > C++ > Der Unterschied zwischen Referenzparametern und Zeigerparametern in C++-Funktionen

Der Unterschied zwischen Referenzparametern und Zeigerparametern in C++-Funktionen

WBOY
Freigeben: 2024-04-20 21:21:02
Original
1082 Leute haben es durchsucht

In C++-Funktionen übergeben Referenzparameter Variablenadressen und Änderungen an Parametern wirken sich auf die ursprünglichen Variablen aus, während Zeigerparameter Zeiger auf Adressen übergeben und Änderungen an Parametern keine Auswirkungen auf die ursprünglichen Variablen haben.

C++ 函数中引用参数和指针参数的区别

Der Unterschied zwischen Referenzparametern und Zeigerparametern in C++-Funktionen

In C++ kann eine Funktion Referenzparameter oder Zeigerparameter akzeptieren. Obwohl beide zum Übergeben der Adresse einer Variablen verwendet werden, gibt es einige wesentliche Unterschiede zwischen ihnen.

Referenzparameter

Referenzparameter übergeben die Adresse der Variablen über die Symbole &. Es übergibt im Wesentlichen die Variable selbst, was bedeutet, dass alle an diesem Referenzparameter vorgenommenen Änderungen in der Originalvariablen widergespiegelt werden. & 传递变量的地址。它本质上是传递变量本身,这意味着对该引用参数所做的任何更改都会反映在原始变量中。

代码示例:

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

int main() {
  int x = 5;
  int y = 10;
  swap(x, y);  // 交换 x 和 y 的值
  cout << x << " " << y << endl; // 输出:10 5
}
Nach dem Login kopieren

指针参数

指针参数通过符号 *

Codebeispiel:

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

int main() {
  int x = 5;
  int y = 10;
  swap(&x, &y);  // 交换 x 和 y 的值
  cout << x << " " << y << endl; // 输出:5 10
}
Nach dem Login kopieren

Zeigerparameter

Zeigerparameter übergeben die Adresse der Variablen durch die Symbole *. Es übergibt im Wesentlichen einen Zeiger auf die Speicheradresse der Variablen, was bedeutet, dass alle am Zeigerparameter vorgenommenen Änderungen nicht in der Originalvariablen widergespiegelt werden. Codebeispiel: DifferenzzusammenfassungReferenzparameterÜbertragungsmethodeÄnderung von ParameternSpeicherbedarfZweck
void swap(int& a, int& b) {
  int temp = a;
  a = b;
  b = temp;
}
Nach dem Login kopieren
Funktionen
Zeiger
Variablenadresse angebenÜbertragung Zeigeradresse
Änderung der OriginalvariablenÄndert die Originalvariable nicht
ZeigergrößeReferenzgröße
Übergabe tatsächlicher Parameter

Übergeben großes Objekt oder komplexe Struktur

Praktisches Beispiel

Stellen Sie sich eine Funktion vor, die zwei Elemente austauschen muss.

Verwenden Sie Referenzparameter:

void swap(int *a, int *b) {
  int temp = *a;
  *a = *b;
  *b = temp;
}
Nach dem Login kopieren
🎜🎜Verwenden Sie Zeigerparameter: 🎜🎜rrreee🎜Welche Methode besser ist, hängt von der spezifischen Situation ab. Wenn zwei einfache Werte ausgetauscht werden müssen, sind Referenzparameter besser geeignet. Wenn Sie jedoch große Objekte oder komplexe Strukturen austauschen müssen, ist ein Zeigerparameter besser geeignet, da er das Kopieren großer Datenblöcke innerhalb und außerhalb der Funktion vermeidet. 🎜

Das obige ist der detaillierte Inhalt vonDer Unterschied zwischen Referenzparametern und Zeigerparametern in C++-Funktionen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage