Indirectieoperator: *

Syntaxis

* cast-expression

Opmerkingen

De unaire indirectieoperator (*) wijst een aanwijzer af; dat wil gezegd, converteert deze een aanwijzerwaarde naar een l-waarde. De operand van de indirectieoperator moet een aanwijzer naar een type zijn. Het resultaat van de indirectie-expressie is het type waaruit het type aanwijzer wordt afgeleid. Het gebruik van de * operator in deze context verschilt van de betekenis ervan als een binaire operator, die vermenigvuldiging is.

Als de operand naar een functie verwijst, is het resultaat een functieontwerpfunctie. Als deze verwijst naar een opslaglocatie, is het resultaat een l-waarde die de opslaglocatie aangeeft.

De indirectieoperator kan cumulatief worden gebruikt om verwijzingen naar aanwijzers te deducteren. Voorbeeld:

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

Als de aanwijzer ongeldig is, is het resultaat niet gedefinieerd. De volgende lijst bevat enkele van de meest voorkomende voorwaarden die een aanwijzerwaarde ongeldig maken.

  • De aanwijzer is een null-aanwijzer.

  • De aanwijzer geeft het adres op van een lokaal item dat niet zichtbaar is op het moment van de verwijzing.

  • De aanwijzer geeft een adres op dat onjuist is uitgelijnd voor het type object waarnaar wordt verwezen.

  • De aanwijzer geeft een adres op dat niet wordt gebruikt door het uitvoerprogramma.

Zie ook

Expressies met Unary Operators
Ingebouwde C++-operators, prioriteit en associativiteit
Adres van operator: &
Indirectie en adres van operators