Heim  >  Artikel  >  Backend-Entwicklung  >  Was sind die Mechanismen zur Übergabe von C++-Funktionsparametern?

Was sind die Mechanismen zur Übergabe von C++-Funktionsparametern?

王林
王林Original
2024-04-11 12:30:01517Durchsuche

Der Übergabemechanismus für C++-Funktionsparameter ist in die Übergabe nach Wert und die Übergabe nach Referenz unterteilt. Durch die Wertübergabe wird eine Kopie des Parameterwerts erstellt. Änderungen an der Kopie wirken sich nicht auf den ursprünglichen Parameter aus. Wird für Basisdatentypen verwendet. Bei der Referenzübergabe wird die Parameteradresse direkt übergeben, sodass die Funktion bei komplexen Typen den ursprünglichen Parameter ändern kann.

C++ 函数参数传递机制有哪些?

C++-Funktionsparameterübergabemechanismus

In C++ bestimmt der Parameterübergabemechanismus, wie eine Funktion vom Aufrufer übergebene Parameter empfängt. Es gibt zwei Mechanismen: Wertübergabe und Referenzübergabe.

Wertübergabe

Wertübergabe erstellt eine Kopie des Parameterwerts und die Kopie wird im Stapelrahmen der Funktion gespeichert. Etwaige Änderungen an der Kopie wirken sich nicht auf die tatsächlichen Parameter in der aufrufenden Funktion aus. Die Wertübergabe wird typischerweise für primitive Datentypen (int, float usw.) verwendet.

Codebeispiel:

void increment(int value) {
  value++; // 修改局部副本
}

int main() {
  int a = 5;
  increment(a);
  std::cout << a << std::endl; // 输出 5,因为 a 的值没有改变
}

Übergabe per Referenz

Übergabe per Referenz erstellt keine Kopie des Parameters, sondern übergibt die Adresse des Parameters selbst per Referenz. Dadurch können Funktionen die ursprünglichen Parameter in der aufrufenden Funktion direkt ändern. Die Referenzübergabe wird typischerweise für komplexe Typen (Objekte, Container usw.) verwendet.

Codebeispiel:

void increment(int& value) {
  value++; // 修改原始参数
}

int main() {
  int a = 5;
  increment(a);
  std::cout << a << std::endl; // 输出 6,因为原始参数被修改
}

Praktischer Fall

Übergabewertbeispiel: Berechnen Sie das Quadrat des Funktionsparameters.

int square(int value) {
  return value * value;
}

int main() {
  int a = 5;
  int result = square(a);
  std::cout << result << std::endl; // 输出 25,因为按值传递不会影响 a
}

Pass-by-Referenzbeispiel: Vertauschen Sie die Werte zweier Funktionsparameter.

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,因为按引用传递修改了原始参数
}

Das obige ist der detaillierte Inhalt vonWas sind die Mechanismen zur Übergabe von C++-Funktionsparametern?. 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