Sdílet prostřednictvím


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

Výrazy s unárními operátory

Operátory jazyka C++

Operátory C++, priorita a asociativita

Adresa operátoru: &

Koncepty

Deferenční operátory a operátory adresy