Heim  >  Artikel  >  Was ist der Unterschied zwischen der Wertübergabe und der Adressübergabe?

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

coldplay.xixi
coldplay.xixiOriginal
2021-02-25 11:32:2014984Durchsuche

Der Unterschied zwischen der Wertübergabe und der Adressübergabe: 1. Bei der Wertübergabe werden die Funktionsparameter auf den Stapel gelegt und nicht auf die Originalvariablen. 2. Bei der Wertübergabe werden die Funktionsparameter auf den Stapel übertragen. Die Funktionsparameter werden auf den Stapel gelegt und sind eine Kopie der Zeigervariablen. Wenn Sie eine Zeigeroperation für den Zeiger ausführen, zeigt sein Wert auf die ursprüngliche Variable.

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

Die Betriebsumgebung dieses Artikels: Windows 7-System, Dell G3-Computer.

Der Unterschied zwischen Pass-by-Value und Pass-by-Address:

1 Bei der Pass-by-Value sind die auf den Stack verschobenen Funktionsparameter Kopien der Parameter und nicht auf die ursprünglichen Variablen.

2. Was bei der Adressübertragung auf den Stapel verschoben wird, ist eine Kopie der Zeigervariablen. Wenn Sie den Zeiger bearbeiten, zeigt sein Wert auf die ursprüngliche Variable, sodass die ursprüngliche Variable bearbeitet wird.​

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

Erweiterte Informationen

Es gibt drei Möglichkeiten, Parameter zu übergeben: Übergabe als Wert, Übergabe per Adresse und Übergabe als Referenz.

1. Wertübergabe

(1) Formale Parameter und tatsächliche Parameter belegen jeweils einen unabhängigen Speicherplatz.

(2) Der Speicherplatz der formalen Parameter wird beim Aufruf der Funktion zugewiesen. Wenn der Aufruf beginnt, öffnet das System einen temporären Speicherbereich für die formalen Parameter und übergibt dann jeden tatsächlichen Parameter an den formalen Parameter Der formale Parameter erhält den Wert des tatsächlichen Parameters.

2. Adressübertragung

Der Unterschied zwischen Adressübertragung und Wertübertragung besteht darin, dass die Speicheradresse des tatsächlichen Parameters auf den formalen Parameter übertragen wird, sodass der formale Parameterzeiger und der tatsächliche Parameterzeiger auf dieselbe Adresse zeigen. Daher wirken sich alle Änderungen an der Adresse, auf die der formale Parameterzeiger in der aufgerufenen Funktion zeigt, auf die tatsächlichen Parameter aus.

3. Übergabe per Referenz

Bei der Übergabe per Referenz wird eine Referenz als Parameter verwendet, wodurch nicht nur jede Operation an den formalen Parametern die entsprechenden Daten ändern kann, sondern auch Funktionsaufrufe bequemer werden. Bei der Referenzübergabe wird der Referenzoperator „&“ vor dem formalen Parameteraufruf hinzugefügt.

Die Referenz ist ein Alias ​​des tatsächlichen Parameters. Wenn es sich um dieselbe Variable wie der tatsächliche Parameter handelt, sind ihre Werte dieselben. Wenn sich die Referenz ändert, ändert sich auch ihr tatsächlicher Parameter.

Kostenlose Empfehlungen zum Thema: Videokurse zum Programmieren

Das obige ist der detaillierte Inhalt vonWas ist der Unterschied zwischen der Wertübergabe und der Adressübergabe?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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