Viele Programmiersprachen verwenden Funktionen. Eine Funktion ist eine Reihe von Aussagen, um eine bestimmte Aufgabe auszuführen. Der Hauptcode kann in mehrere Funktionen unterteilt werden und sie rufen. Es gibt zwei Möglichkeiten, eine Funktion zu rufen, z. In Call By Value -Methode werden Kopien von Variablen in die Funktion übergeben. Wenn sich der Wert der Funktion ändert, ändert sich der ursprüngliche Wert nicht. In Call By Referenz spiegeln Änderungen der Variablen innerhalb der Funktion den ursprünglichen Wert wider. Der Schlüsselunterschied Zwischen Anruf nach Wert und Anruf durch Referenz ist das, In Call by Value werden die Kopie der Variablen an die Funktion übergeben und in Anruf durch Bezugnahme werden die Adressen der Variablen an die Funktion übergeben. In diesem Artikel wird die Differenz zwischen Anruf nach Wert und Anruf durch Referenz erörtert.
1. Überblick und wichtiger Unterschied
2. Was ist Call by Value
3. Was ist Anruf durch Bezugnahme
4. Ähnlichkeiten zwischen Anruf nach Wert und Anruf durch Referenz
5. Seite an Seite Vergleich - Aufruf nach Wert vs Aufruf durch Referenz in tabellarischer Form
6. Zusammenfassung
In Call by Value werden Kopien von Variablen an die Funktion übergeben. Die Funktion kann diesen kopierten Wert ändern, aber nicht den ursprünglichen Wert ändert. Dieses Konzept kann leicht verstanden werden, indem zwei Zahlenprogramme austauschen. Siehe das folgende C -Programm mit der Umgebung mit Codeblöcken, die geschrieben wurden.
Abbildung 01: Programm zum Austausch von zwei Zahlen
Gemäß dem unten angegebenen Programm hat die Variable 'A' Wert 20 und Variable 'B' Wert 30. Wenn diese beiden Werte an die Swap -Funktion übergeben werden, werden diese beiden Werte beim Aufrufen von Swap (a, b). In der Swap -Funktion wird 'a' in 'x' kopiert und 'B' in 'Y' kopiert, in "Y" kopiert wird. Jetzt hat 'x' Wert 20 und 'y' Wert 30. Verwenden der TEMP -Variable werden die beiden Werte ausgetauscht. Wenn Sie den Wert von 'x' und 'y' in dieser Swap -Funktion drucken, gibt die Ausgabe 30 für 'x' und 20 für 'y'. Wenn die Ausführung der Swap -Funktion beendet ist, kehrt die Steuerung zur Hauptfunktion zurück. Wenn Sie die Werte von 'A' und 'B' in der Hauptfunktion drucken, sind die Ergebnisse die ursprünglichen Werte. Sie sind 20 für 'A' und 30 für 'B'. Änderungen, die mithilfe der Swap -Funktion vorgenommen wurden, spiegeln im Hauptprogramm nicht wider.
Abbildung 02: Ausgabe des Tauschprogramms
'x' und 'y' innerhalb der Swap -Funktion hat die ausgetauschten Werte, die 30 und 20 sind, aber diese Werte können im Hauptprogramm nicht verwendet werden. Obwohl 'x' und 'y' Werte ausgetauscht haben, sind sie lokale Variablen zur Tauschfunktion und können nicht von der Hauptfunktion zugegriffen werden. Um dieses Problem zu vermeiden, kann der Aufruf durch Referenz verwendet werden.
Bei dieser Methode werden Adressen der Variablen an die Funktion gesendet. Siehe das folgende C -Programm mit der Umgebung mit Codeblöcken, die geschrieben wurden.
Abbildung 03: Austausch von zwei Zahlen mit Zeigern
Nach dem folgenden Beispiel ist der Wert von 'A' 20 und der Wert von 'B' 30. Anstatt Kopien von 'A' und 'B' zu übergeben, kann der Programmierer die Adressen von 'a' und 'B' mithilfe der Funktion, Swap (& a, & b) senden, senden.
Abbildung 04: Ausgabe des Tauschprogramms mit Zeigern
Im Swap sollte die Funktion Zeiger verwenden, da Adressen übergeben werden und diese Adressen von Zeigern gehalten werden sollten. Innerhalb der Funktion wird die Adresse von 'A' in 'x' kopiert und die Adresse von 'B' in 'Y' kopiert. Verwenden der TEMP -Variablen, "X" und "Y" werden ausgetauscht. In diesem Aufruf der Referenzmethode spiegeln sich die Änderungen innerhalb der Swap -Funktion im Hauptprogramm wider. Das Drucken der Werte von 'a' und 'B' in der Hauptsache ergibt die ausgetauschten Werte. Jetzt beträgt der Ausgang von 'a' 30 und 'B' 20. Da die Funktion die Adresse der Variablen übernimmt, wirken sich die in der Funktion vorgenommenen Änderungen auf die ursprünglichen Werte aus.
Rufen Sie nach Wert gegen den Aufruf durch Referenz an | |
In Call by Value werden Kopien von Variablen in die Funktion übergeben, sodass Änderungen in der Funktion vorgenommen werden, und ändern den ursprünglichen Wert nicht. | In Call By Reference wird die Adresse der Variablen an die Funktion übergeben, sodass Änderungen für Variablen innerhalb der Funktion vorgenommen werden. |
Wertveränderung | |
In Call by Value ändert sich der ursprüngliche Wert nicht. | In Call by Referenz ändern sich die ursprünglichen Werte. |
Rufen Sie nach Wert auf und rufen Sie nach Referenzmethoden auf, die die Funktion aufrufen. Die Differenz zwischen Aufruf nach Wert und Aufruf nach Bezugnahme besteht darin. Die Verwendung von Aufrufen nach Wert oder Anruf durch Referenz hängt von der Ausführung der Aufgabe ab.
Sie können die PDF -Version dieses Artikels herunterladen und ihn für Offline -Zwecke gemäß Citation Note verwenden. Bitte laden Sie die PDF -Version hier den Unterschied zwischen Anruf nach Wert und Anruf durch Referenz herunter
1.Jaiswal, Haresh . „11 Call by Value vs Call per Referenz.” Youtube, YouTube, 24. Dezember. 2015. Hier verfügbar