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
Operatorrangfolge und Assoziativität