Heim > Backend-Entwicklung > C++ > Wie kann ich Funktionsparameter ändern und Änderungen im Aufrufer in C widerspiegeln?

Wie kann ich Funktionsparameter ändern und Änderungen im Aufrufer in C widerspiegeln?

Barbara Streisand
Freigeben: 2024-12-10 12:16:10
Original
215 Leute haben es durchsucht

How Can I Modify Function Parameters and Reflect Changes in the Caller in C  ?

Parameteränderung in Funktionen: Auswirkungen für den Aufrufer

In C werden an eine Funktion übergebene Parameter normalerweise nach Wert kopiert. Dies bedeutet, dass alle am Parameter innerhalb der Funktion vorgenommenen Änderungen keinen Einfluss auf den ursprünglichen Wert im Aufrufer haben.

Im angegebenen Code ist die Trans-Funktion wie folgt definiert:

void trans(double x,double y,double theta,double m,double n)
{
    m=cos(theta)*x+sin(theta)*y;
    n=-sin(theta)*x+cos(theta)*y;
}
Nach dem Login kopieren

If Sie rufen trans aus derselben Datei auf wie:

trans(center_x,center_y,angle,xc,yc);
Nach dem Login kopieren

die Werte von xc und yc werden nicht innerhalb der geändert Funktion. Um dies zu erreichen, haben Sie zwei Möglichkeiten:

  1. Referenzen in C verwenden:

    • Fügen Sie ein kaufmännisches Und (&) hinzu. vor jedem Parameter m und n in der Funktionsdefinition:

      void trans(double x, double y, double theta, double& m, double& n)
      Nach dem Login kopieren
    • In Übergeben Sie dem Aufrufer die Variablen ohne das kaufmännische Und:

      trans(center_x, center_y, angle, xc, yc);
      Nach dem Login kopieren
  2. Verwenden Sie Zeiger in C:

    • Ändern Sie die Funktionsdefinition in „Akzeptieren“. Zeiger:

      void trans(double x, double y, double theta, double* m, double* n)
      Nach dem Login kopieren
    • Übergeben Sie im Aufrufer die Adresse der Variablen:

      trans(center_x, center_y, angle, &xc, &yc);
      Nach dem Login kopieren

By Bei beiden Methoden werden die Werte von xc und yc innerhalb der Trans-Funktion geändert, da sie jetzt als Referenz oder Zeiger übergeben werden. Dadurch kann die Funktion die ursprünglichen Variablen im Aufrufer direkt ändern.

Das obige ist der detaillierte Inhalt vonWie kann ich Funktionsparameter ändern und Änderungen im Aufrufer in C widerspiegeln?. 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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage