Freigeben über


Der Dereferenzierungsoperator: *

* cast-expression

Hinweise

Der unäre Dereferenzierungsoperator (*, einen Zeiger dereferenziert) Das heißt, konvertiert er einen Zeigerwert in einem l-Wert dar.Der Operand des Dereferenzierungsoperators muss ein Zeiger auf ein primitiver Typ sein.Das Ergebnis des Ausdrucks für Dereferenzierungs ist der Typ, aus dem der Zeigertyp abgeleitet ist.Die Verwendung des Operators *-in diesem Kontext ist mit seiner Bedeutung als binärer Operator Distinct, der Multiplikation ist.

Wenn der Operand auf eine Funktion verweist, ist das Ergebnis ein Funktionsbezeichner.Wenn er auf einen Speicherort verweist, ist das Ergebnis ein l-Wert, der den Ort festlegt.

Der Dereferenzierungsoperator ist kumulativ verwendet werden, um Zeiger auf den Zeigern zu dereferenzieren.Beispiele:

// expre_Indirection_Operator.cpp
// compile with: /EHsc
// Demonstrate indirection operator
#include <iostream>
using namespace std;
int main() {
   int n = 5;
   int *pn = &n;
   int **ppn = &pn;

   cout  << "Value of n:\n"
         << "direct value: " << n << endl
         << "indirect value: " << *pn << endl
         << "doubly indirect value: " << **ppn << endl
         << "address of n: " << pn << endl
         << "address of n via indirection: " << *ppn << endl;
}

Wenn der Zeigerwert ungültig ist, ist das Ergebnis nicht definiert.In der folgenden Liste sind einige der häufigsten Bedingungen, die ein Zeigerwert ungültig.

  • Der Zeiger ist ein NULL-Zeiger.

  • Der Zeiger gibt die Adresse eines lokalen Elements an, das nicht zum Zeitpunkt ihres Verweises sichtbar ist.

  • Der Zeiger wird eine Adresse an, der unpassend für den Objekttyp ausgerichtet ist, das angezeigt wird.

  • Der Zeiger wird eine Adresse an, die nicht vom ausgeführten Programm verwendet wird.

Siehe auch

Referenz

Ausdrücke mit unären Operatoren

C++-Operatoren

Operatorrangfolge und Assoziativität

Adresse-Von Operator: &.

Konzepte

Dereferenzierung und Adresse-Von Operators