Heim >Backend-Entwicklung >C++ >Wie gehen C- und C-Funktionen mit Parameteränderungen um?
Funktionen in C: Parameteränderungen
Die Übergabe von Parametern an Funktionen kann Fragen zu ihrem Verhalten innerhalb von Funktionen aufwerfen. Parameter können je nach Programmiersprache unterschiedliche Formen annehmen, und in C gibt es zwei Hauptoptionen.
Wenn Sie eine Funktion wie folgt deklarieren:
void trans(double x, double y, double theta, double m, double n)
die Parameter x, y, Theta, m und n werden als Wert übergeben (d. h. ihre Kopien werden innerhalb der Funktion erstellt). Alle innerhalb der Funktion an diesen Parametern vorgenommenen Änderungen wirken sich nicht auf die ursprünglichen Werte im Aufrufer aus.
Um die tatsächlichen Werte im Aufrufer zu ändern, können Sie stattdessen Referenzen verwenden. Durch die Verwendung einer Referenz wird der Parameter zu einem Alias für die Variable in der aufrufenden Funktion.
void trans(double x, double y, double theta, double& m, double& n) { // Modifications to m and n will affect the caller's variables }
Beim Aufruf der Trans-Funktion mithilfe von Referenzen:
trans(center_x, center_y, angle, xc, yc);
die Werte von xc und yc in der aufrufenden Funktion wird mit den in trans vorgenommenen Änderungen aktualisiert.
In C ist ein etwas anderer Ansatz erforderlich. Anstelle von Referenzen müssten Sie explizite Zeiger oder Adressen auf die Variablen übergeben, die geändert werden sollen. Hier ist ein Beispiel:
void trans(double x, double y, double theta, double* m, double* n) { // Modifications via pointer indirection (e.g., *m) will update the caller's variables } // In main: trans(center_x, center_y, angle, &xc, &yc);
Mit dem &-Operator können Sie die Adresse der Variablen übergeben, sodass die Funktion auf den tatsächlichen Wert zugreifen und ihn ändern kann.
Das obige ist der detaillierte Inhalt vonWie gehen C- und C-Funktionen mit Parameteränderungen um?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!