Was ist der Unterschied zwischen Wertübergabe und Referenzübergabe?

Inhaltsverzeichnis:

Anonim

Die Hauptunterschied zwischen Wertübergabe und Referenzübergabe ist, dass Bei einer Wertübergabe wird der Parameterwert in eine andere Variable kopiert, während bei einer Referenzübergabe der aktuelle Parameter an die Funktion übergeben wird.

Ein Computerprogramm ist ein Satz von Anweisungen, der die CPU anweist, eine bestimmte Aufgabe auszuführen. Es gibt verschiedene Konzepte in der Programmierung, um effiziente und effektive Programme zu schreiben. Eine davon ist function, eine Gruppe von wiederverwendbaren Anweisungen. Anstatt alle Anweisungen im selben Programm zu schreiben, ist es möglich, es in mehrere Funktionen aufzuteilen und diese im Hauptprogramm aufzurufen. Das macht die Programme übersichtlicher und pflegeleichter. Dabei gibt es zwei Methoden zum Aufrufen einer Funktion. Sie verwenden eine Wertübergabe oder eine Referenzübergabe.

Wertüberschreitung, Referenzwertübergabe

Was ist Wertübergabe?

Bei der Wertübergabe wird der Wert eines Funktionsparameters an eine andere Stelle des Speichers kopiert. Beim Aufrufen oder Ändern der Variablen innerhalb der Funktion greift sie nur auf die Kopie zu. Der ursprüngliche Wert wird somit nicht beeinflusst.

Abbildung 1: C-Programm mit Wertübergabe

Im oben dargestellten Programm speichert die Variable value die ganze Zahl 5. Der findNewValue ist eine Funktion. Der Wert wird an diese Funktion übergeben. In der Funktion wird der Wert dann an einen neuen Speicherplatz namens newValue kopiert. Die Funktion gibt dann eine ganze Zahl zurück. Und diese ganze Zahl wird in der newValue-Variable der Hauptfunktion gespeichert. Schließlich wird der newValue auf der Konsole ausgegeben.

In der Funktion heißt der an einen neuen Speicherplatz kopierte Wert newValue. Die Änderungen werden an diesem neuen Wert vorgenommen, nicht am ursprünglichen Wert. Diese Methode wird als Wertübergabe bezeichnet.

Was ist Referenzübergabe?

Bei der Referenzübergabe wird die Speicheradresse an diese Funktion übergeben. Mit anderen Worten, die Funktion erhält Zugriff auf die tatsächliche Variable. Ein Beispiel ist wie folgt.

Abbildung 2: C-Programm mit Referenzübergabe

Die Variable value speichert die ganze Zahl 5. Der findNewValue ist eine Funktion. Die Adresse des Speicherplatzes „value“ wird dieser Funktion übergeben. Somit erhält die Funktion diesen Wert. Der newValue ist ein Zeiger. Es zeigt auf den ursprünglichen Speicherplatz namens value. Die Funktion addiert 5 zum ursprünglichen Wert, auf den newValue zeigt. Anschließend wird der berechnete Wert zurückgegeben und in der Variablen newValue gespeichert. Schließlich wird der newValue auf der Konsole ausgegeben.

Bei dieser Methode wird der Speicherplatz an die Funktion übergeben. Daher werden die Änderungen am ursprünglichen Wert vorgenommen. Daher wird diese Methode als Referenzübergabe bezeichnet.

Unterschied zwischen Wertübergabe und Referenzübergabe

Definition

Wertübergabe bezieht sich auf einen Mechanismus zum Kopieren des Funktionsparameterwerts in eine andere Variable, während sich die Referenzübergabe auf einen Mechanismus zum Übergeben der tatsächlichen Parameter an die Funktion bezieht. Dies ist also der Hauptunterschied zwischen Wertübergabe und Referenzübergabe.

Änderungen

Bei der Wertübergabe werden die innerhalb der Funktion vorgenommenen Änderungen nicht im ursprünglichen Wert widergespiegelt. Auf der anderen Seite spiegeln sich bei der Referenzübergabe die innerhalb der Funktion vorgenommenen Änderungen im ursprünglichen Wert wider. Daher ist dies ein weiterer Unterschied zwischen Wertübergabe und Referenzübergabe.

Aktueller Parameter

Assoziation mit Funktion

Ein weiterer Unterschied zwischen Wertübergabe und Referenzübergabe besteht darin, dass die Funktion bei der Wertübergabe eine Kopie des tatsächlichen Inhalts erhält, während die Funktion bei der Referenzübergabe auf den Inhalt der ursprünglichen Variablen zugreift.

Speicherbedarf

Außerdem benötigt die Wertübergabe mehr Speicher als die Referenzübergabe.

Zeitbedarf

Der Zeitbedarf ist ein weiterer Unterschied zwischen Wertübergabe und Referenzübergabe. Die Wertübergabe erfordert mehr Zeit, da Werte kopiert werden müssen, während die Referenzübergabe weniger Zeit benötigt, da kein Kopieren stattfindet.

Abschluss

Der Hauptunterschied zwischen Wertübergabe und Referenzübergabe besteht darin, dass bei der Wertübergabe der Parameterwert in eine andere Variable kopiert wird, während bei der Referenzübergabe der eigentliche Parameter an die Funktion übergeben wird.

Referenz:

1. „Funktionen in C – Javatpoint.“ www.javatpoint.com, hier verfügbar.

Was ist der Unterschied zwischen Wertübergabe und Referenzübergabe?