Wenn wir einen Zeiger als Parameter an eine Methode übergeben, übergeben wir tatsächlich eine Kopie des Zeigers an die Methode, oder wir können sagen, dass das Bestehen des Zeigers der Wert des Zeigers ist.
Detaillierte Erklärung des Unterschieds zwischen Referenz und Zeiger in C ++
Referenzen werden aus C ++ eingeführt und existieren nicht in C. Um das Konzept des Zitats zu verstehen, müssen Sie zunächst die Definition von Variablen und den Unterschied zwischen Referenzen und Variablen verstehen.
Eine Referenz ist keine Variable, sie ist nur ein Alias für eine Variable, und es hat keinen unabhängigen Raum. Mit anderen Worten muss eine Referenz den gleichen Speicherraum wie die Variable IT Referenz teilen, und die Änderung der Referenz ist tatsächlich eine Änderung der verwiesenen Variablen. Und Referenzen müssen bei definiert initialisiert werden.
Die Art des Parameterübergangs und verwandte Punkte:
1 Nach Wert übergeben: Der Wert des formalen Parameters kann nicht geändert werden.
2 Referenzpass: Es ist nicht erforderlich, Platz zuzuweisen, wenn der tatsächliche Parameter initialisiert wird.
3 Zeigerabgabe: Im Wesentlichen wird es nach Wert übergeben. Wenn Sie die Adresse des Zeigers ändern müssen, müssen Sie einfach mit einem Zeiger bestehen.
Im Folgenden sind die relevanten Inhalte angegeben:
1 Zitatkonzept
2 const zitate
3 Referenz als Parameter übergeben
4 Referenz als Funktionsertragswert
5. Der Unterschied zwischen Referenz und Zeiger
1 Zitatkonzept
Beachten Sie einfach die folgenden wichtigen Punkte:
(1) Referenz ist ein Alias für Variablen, und es gibt keinen unabhängigen Raum
(2) Die Referenz muss mit den Variablen, die IT -Referenzen verweisen, gemeinsam genutzt werden
(3) Änderungen an einer Referenz sind tatsächlich Änderungen an den Variablen IT -Referenzen
(4) Referenzen müssen bei der Definition initialisiert werden
(5) Sobald die Referenz initialisiert ist, können andere Variablen nicht rezitiert werden.
Siehe das folgende Beispiel:
int main (void) {int val = 100; int val2 = 500; // bedeutet nur, dass VAL2 Refval zugewiesen wird, dh val.2 const zitate
Die wichtigsten Punkte des Const -Zitats sind wie folgt:
(1) Wie der Name schon sagt, ist eine Const -Referenz eine Referenz auf ein Const -Objekt.
(2) Eine CONT-Referenz kann auf ein nicht konstantes Objekt beziehen, aber eine nicht konstante Referenz kann nicht auf ein CONT-Objekt verweisen. Siehe das folgende Funktionsbeispiel.
int a = 200;
(3) Der von Const bezogene Objektwert ist eine Konstante und kann nicht geändert werden.
const int a = 200;
(4) Eine Const -Referenz kann sich auf Variablen verschiedener Typen beziehen, erzeugt jedoch eine temporäre Variable. wie folgt:
Double A = 3.14; // const int & ref = tmp; Die Referenz ist tatsächlich eine temporäre Variable
3 Referenz als Parameter übergeben
Das Übergeben einer Referenz als Parameter ist einer der Parameter. Es muss keinen Speicherplatz zuweisen, wenn der tatsächliche Parameter initialisiert wird.
void Swap (int & a) {int tmp = a = b;4 Referenz als Funktionsertragswert
Listen Sie zunächst die Beispiele wie folgt auf:
int a [] = {1,2,3,4,5,6,7,8,9,0};Dies ist eine weitere Funktion von Referenzen, bei denen die Funktion links vom Zuordnungsoperator platziert werden kann. Die Indexfunktion gibt die Referenz von A [] zurück.
5. Der Unterschied zwischen Referenz und Zeiger
(1) Zugriffsreferenz ist direkter Zugriff und Zugriffszeiger ist indirekter Zugriff.
(2) Referenz ist ein Alias für Variablen.
(3) Sobald die Referenz initialisiert ist, können keine anderen Variablen verwiesen werden, aber der Zeiger kann jedoch
(4) Verwenden Sie so weit wie möglich Referenzen und verwenden Sie Zeiger, wann immer Sie müssen.
Vielen Dank für das Lesen und Erläuterungen der Unterschiede zwischen Referenzen und Zeigern in C ++ im Detail.