Heim >Backend-Entwicklung >C++ >Was sind die Mechanismen zur Übergabe von C++-Funktionsparametern?
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++-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!