Deferenční operátor: *
* cast-expression
Poznámky
Operátor unární dereference (*) provádí dereferenci ukazatele. To znamená, že převede hodnotu ukazatele na l hodnotu.Operand operátoru dereference musí být typu ukazatel.Výsledek výrazu dereference je typ, ze kterého je odvozen typ ukazatele.Použití operátoru * v tomto kontextu se liší od jeho významu jako binární operátor, který přestavuje násobení.
Ukazuje-li operand na funkci, je výsledkem označení funkce.Ukazuje-li na umístění úložiště, je výsledkem l-hodnota označující umístění úložiště.
Operátor dereference lze kumulativně použití pro provedení dereference z ukazatele na ukazatel.Příklad:
// 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;
}
Pokud je hodnota ukazatele neplatná, výsledek je nedefinován.Následující seznam zahrnuje některé z nejběžnějších situací, které zneplatňují hodnotu ukazatele.
Ukazatel je nulový.
Ukazatel určuje adresu místní položky, která v době reference není viditelná.
Ukazatel určuje adresu, která je pro typ objektu, na který ukazatel ukazuje, nesprávně zarovnána.
Ukazatel určuje adresu, která není používána spuštěným programem.
Viz také
Referenční dokumentace
Operátory C++, priorita a asociativita