Heim  >  Artikel  >  Backend-Entwicklung  >  Was ist der Unterschied zwischen einer Referenz und einem Zeiger in C++?

Was ist der Unterschied zwischen einer Referenz und einem Zeiger in C++?

青灯夜游
青灯夜游Original
2020-11-09 10:15:325119Durchsuche

Unterschiede: 1. Der Zeiger hat seinen eigenen Raum und die Referenz ist nur ein Alias. 2. Der Zeiger kann während der Verwendung auf andere Objekte zeigen, aber die Referenz kann nur eine Referenz auf ein Objekt sein und kann nicht geändert werden . Der Zeiger kann mehrere Objektebenenzeiger haben (z. B. **p), ​​während Referenzen Ebene eins sind. Der „++“-Operator hat unterschiedliche Bedeutungen für Zeiger und Referenzen.

Was ist der Unterschied zwischen einer Referenz und einem Zeiger in C++?

Verwandte Empfehlungen: C++-Video-Tutorial

1. Variablen

Zuerst und am wichtigsten, die Definition einer Variablen, der Computer gibt einen Speicherplatz an Mit dem Variablennamen binden; diese Definition ist sehr einfach, aber eigentlich sehr abstrakt, zum Beispiel: int x = 5 Dies ist die einfachste Variablenzuweisungsanweisung, die dem Speicherplatz mit dem Namen x 5 zuweist einem Speicherplatz zugeordnet, und dieser Speicherplatz heißt x.

Was ist der Unterschied zwischen einer Referenz und einem Zeiger in C++?

Der Betrieb von Variablen im Speicher erfordert tatsächlich zwei Schritte:

  • Finden Sie die Speicheradresse heraus, die dem Variablennamen entspricht.

  • Entnehmen Sie entsprechend der gefundenen Adresse den Wert im Speicherbereich, der der Adresse entspricht, und führen Sie Operationen aus.

2. Zeiger

Das Besondere an Zeigern ist, dass der im Speicherbereich der Zeigervariablen gespeicherte Wert zufällig eine bestimmte Speicheradresse ist. Dies ist auch eines der Merkmale, die Zeigervariablen von anderen Variablen unterscheiden. Die Definition eines Zeigers lautet beispielsweise wie folgt:

int x = 5;
int *ptr = &x;

ptr ist der Name einer Korrekturvariablen. Das Abrufen des Werts im Speicher, auf den dieser Zeiger zeigt, über einen Zeiger wird als Dereferenzierung bezeichnet. Nullzeiger können nicht dereferenziert werden.

Die Darstellung des Zeigerspeicherplatzes ist wie folgt:

Was ist der Unterschied zwischen einer Referenz und einem Zeiger in C++?

3. Referenz

Referenz (Referenz) wird auch häufig in C++ verwendet, insbesondere wenn sie als Funktionsparameter verwendet wird, muss die Funktion geändert werden Wenn der externe Wert innerhalb der Funktion aktualisiert wird. Zunächst müssen wir klarstellen, dass eine Referenz eine besondere Art von Zeiger ist.

Eine Referenz ist ein konstanter Zeiger, der auf ein anderes Objekt zeigt und die Speicheradresse des angezeigten Objekts enthält. Und es wird bei Verwendung automatisch dereferenziert, ohne dass es explizit wie mit einem Zeiger abgerufen werden muss.

Zum Beispiel lautet die Definition von Referenz wie folgt:

int x = 5;
int &y = x;

4. Zusammenfassung des Unterschieds zwischen Zeigern und Referenzen

  • Ein Zeiger hat seinen eigenen Raum, während eine Referenz nur ein Alias ​​ist;

    Verwenden Sie sizeof, um die Größe eines Zeigers anzuzeigen.
  • Der Zeiger kann auf NULL initialisiert werden, aber die Referenz muss initialisiert werden und eine Referenz auf ein vorhandenes Objekt sein ;
  • Wenn der Zeiger als Parameter übergeben wird, kann das Objekt nur durch Dereferenzierung bedient werden, und eine direkte Änderung der Referenz ändert das Objekt, auf das die Referenz zeigt.
  • Zeiger können auf andere zeigen Objekte während der Verwendung, aber die Referenz kann nur eine Referenz auf ein Objekt sein und kann nicht geändert werden.
  • Zeiger können mehrere Zeigerebenen (**p) haben, während Referenzen auf einer Ebene liegen Zeiger und Referenzen haben bei Verwendung des ++-Operators unterschiedliche Bedeutungen.
  • Wenn ein dynamisch zugewiesenes Speicherobjekt zurückgegeben wird, müssen Zeiger verwendet werden, und Referenzen können zu Speicherverlusten führen.
  • Weitere Kenntnisse zum Thema Programmierung finden Sie unter:
  • Einführung in die Programmierung
  • ! !

Das obige ist der detaillierte Inhalt vonWas ist der Unterschied zwischen einer Referenz und einem Zeiger in C++?. 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