Udostępnij za pośrednictwem


Operator bezpośredni: *

* cast-expression

Uwagi

Operator jednoargumentowy pośrednictwa (*) wyłuskuje wskaźnik; oznacza to, że konwertuje wartość wskaźnika do wartości l.Operand operatora pośrednictwa musi być wskaźnikiem do typu.Wynikiem wyrażenia pośrednictwa jest typ, z którego typ wskaźnika jest wnioskowany.Użycie operatora * w tym kontekście różni się od jego znaczenie jako operatora dwuargumentowego, czyli mnożenia.

Jeśli argument operacji wskazuje funkcję, wynikiem jest opis funkcji.Jeśli wskazuje on lokalizację pamięci, wynikiem jest l-wartość opisująca lokalizację pamięci.

Operator pośrednictwa może być używany łącznie do wyłuskiwania wskaźników do wskaźników.Na przykład:

// 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;
}

Jeśli wartość wskaźnika jest nieprawidłowa, wynik jest nieokreślony.Następująca lista zawiera niektóre z najbardziej typowych warunków, które unieważniają wartość wskaźnika.

  • Wskaźnik jest pustym wskaźnikiem.

  • Wskaźnik określa adres lokalnego elementu, który nie jest widoczny w czasie odwołania.

  • Wskaźnik określa adres, który jest nieodpowiednio wyrównany dla typu wskazywanego obiektu.

  • Wskaźnik określa adres nieużywany przez wykonujący program.

Zobacz też

Informacje

Wyrażenia z operatorami jednoargumentowymi

Operatory języka C++

Operatory, pierwszeństwo i kojarzenie języka C++

Operator Address-of: &

Koncepcje

Operatory pośrednie i „Address-of”