Heim  >  Artikel  >  Backend-Entwicklung  >  Der wesentliche Unterschied zwischen der Wertübergabe und der Referenzübergabe in C++

Der wesentliche Unterschied zwischen der Wertübergabe und der Referenzübergabe in C++

PHPz
PHPzOriginal
2024-04-12 12:00:02539Durchsuche

Der Unterschied zwischen der Wertübergabe und der Referenzübergabe in C++: Die Wertübergabe erstellt eine Kopie des Parameters und hat keinen Einfluss auf die ursprüngliche Variable. Die Referenzübergabe wirkt direkt auf den Parameter und die Änderung wird in der Originalvariablen widergespiegelt. Praktischer Fall: Der Austausch zweier ganzzahliger Werte führt nicht zum Austausch, wohl aber zur Referenzübergabe.

C++ 值传递和引用传递的本质区别

Der wesentliche Unterschied zwischen der Wertübergabe und der Referenzübergabe in C++

In C++ gibt es bei der Übergabe von Funktionsparametern zwei Hauptoptionen: Wertübergabe und Referenzübergabe. Der grundlegende Unterschied zwischen diesen beiden Übergabemethoden besteht darin, dass bei der Übergabe nach Wert eine Kopie der Parameter erstellt wird, während bei der Übergabe nach Referenz direkt auf die übergebenen Parameter eingegangen wird.

Wertübergabe

Bei der Wertübergabe wird eine Kopie des Parameterwerts an die Funktion übergeben. Dies bedeutet, dass alle Änderungen, die die Funktion an der Kopie der übergebenen Argumente vornimmt, keine Auswirkungen auf die Originalvariablen haben.

void PrintValue(int num) {
  num++;
}

int main() {
  int x = 5;
  PrintValue(x);  // 传递 x 的副本
  cout << x;  // 输出 5,因为原始值不受影响
}

Übergabe per Referenz

Bei der Übergabe per Referenz wird die Referenz des an die Funktion übergebenen Parameters an die Funktion übergeben. Das bedeutet, dass die Funktion direkt auf die übergebenen Argumente einwirkt und alle Änderungen in den Originalvariablen widergespiegelt werden.

void PrintReference(int& num) {
  num++;
}

int main() {
  int x = 5;
  PrintReference(x);  // 传递 x 的引用
  cout << x;  // 输出 6,因为原始值已被修改
}

Praktischer Fall

Ein praktischer Fall zur Veranschaulichung des Unterschieds zwischen Wertübergabe und Referenzübergabe: Austausch der Werte zweier Ganzzahlen:

Wertübergabe:

// 值传递不会交换原始变量的值
void SwapValues(int a, int b) {
  int temp = a;
  a = b;
  b = temp;
}

int main() {
  int x = 5, y = 10;
  SwapValues(x, y);
  cout << x << " " << y;  // 输出 5 10,原始值没有交换
}

Referenzübergabe:

// 引用传递交换原始变量的值
void SwapReferences(int& a, int& b) {
  int temp = a;
  a = b;
  b = temp;
}

int main() {
  int x = 5, y = 10;
  SwapReferences(x, y);
  cout << x << " " << y;  // 输出 10 5,原始值已交换
}

Das obige ist der detaillierte Inhalt vonDer wesentliche Unterschied zwischen der Wertübergabe und der Referenzübergabe 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