Heim > Backend-Entwicklung > C++ > Hauptteil

Parameterübergabetechnologie in C/C++

WBOY
Freigeben: 2023-08-31 13:41:06
nach vorne
811 Leute haben es durchsucht

Parameterübergabetechnologie in C/C++

In C können wir Argumente auf zwei verschiedene Arten übergeben. Dies sind Call-by-Value und Call-by-Address, und in C++ können wir eine andere Technik bekommen. Dies wird als Call-by-Reference bezeichnet. Werfen wir einen Blick auf ihre Wirkung und ihre Wirkungsweise.

Zuerst sehen wir Call-by-Value. Bei dieser Technik werden Parameter in Funktionsparameter kopiert. Wenn also Änderungen vorgenommen werden, wird dadurch der kopierte Wert aktualisiert, nicht der tatsächliche Wert.

Beispiel

#include <iostream>
using namespace std;
void my_swap(int x, int y) {
   int temp;
   temp = x;
   x = y;
   y = temp;
}
int main() {
   int a, b;
   a = 10;
   b = 40;
   cout << "(a,b) = (" << a << ", " << b << ")\n";
   my_swap(a, b);
   cout << "(a,b) = (" << a << ", " << b << ")\n";
}
Nach dem Login kopieren

Ausgabe

(a,b) = (10, 40)
(a,b) = (10, 40)
Nach dem Login kopieren

Call by Address funktioniert, indem die Adresse einer Variablen an eine Funktion übergeben wird. Wenn die Funktion daher den Wert aktualisiert, auf den diese Adresse zeigt, wird der tatsächliche Wert automatisch aktualisiert.

Beispiel

#include <iostream>
using namespace std;
void my_swap(int *x, int *y) {
   int temp;
   temp = *x;
   *x = *y;
   *y = temp;
}
int main() {
   int a, b;
   a = 10;
   b = 40;
   cout << "(a,b) = (" << a << ", " << b << ")\n";
   my_swap(&a, &b);
   cout << "(a,b) = (" << a << ", " << b << ")\n";
}
Nach dem Login kopieren

Ausgabe

(a,b) = (10, 40)
(a,b) = (40, 10)
Nach dem Login kopieren
Nach dem Login kopieren

Gleiches wie Adressaufruf, hier verwenden wir einen Referenzaufruf. Dies ist eine C++-spezifische Funktion. Wir müssen die Referenzvariable des Parameters übergeben. Um ihn zu aktualisieren, wird der tatsächliche Wert aktualisiert. Lediglich bei der Funktionsdefinition müssen wir & vor den Variablennamen setzen.

Beispiel

#include <iostream>
using namespace std;
void my_swap(int &x, int &y) {
   int temp;
   temp = x;
   x = y;
   y = temp;
}
int main() {
   int a, b;
   a = 10;
   b = 40;
   cout << "(a,b) = (" << a << ", " << b << ")\n";
   my_swap(a, b);
   cout << "(a,b) = (" << a << ", " << b << ")\n";
}
Nach dem Login kopieren

Ausgabe

(a,b) = (10, 40)
(a,b) = (40, 10)
Nach dem Login kopieren
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonParameterübergabetechnologie in C/C++. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:tutorialspoint.com
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage