Partager via


Opérateur d'indirection : *

* cast-expression

Notes

l'opérateur d'indirection unaire (*) déréférence un pointeur ; autrement dit, il convertit une valeur de pointeur vers une l-value.L'opérande de l'opérateur d'indirection doit être un pointeur vers un type.le résultat de l'expression d'indirection est le type dont le type pointeur est dérivé.L'utilisation de l'opérateur de * dans ce contexte est différente de sa signification comme opérateur binaire, qui est multiplication.

si les points d'opérande à une fonction, le résultat est un indicateur de fonction.S'il pointe vers un emplacement de stockage, le résultat est une l-value indiquant l'emplacement de stockage.

L'opérateur d'indirection peut être utilisé oublier qu'ensemble de déréférencement les pointeurs vers des pointeurs.Par exemple :

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

Si la valeur du pointeur n'est pas valide, le résultat n'est pas défini.La liste suivante inclut certaines conditions les plus courantes qui invalident une valeur de pointeur.

  • le pointeur est un pointeur null.

  • le pointeur spécifie l'adresse d'un élément local qui n'est pas visible au moment de la référence.

  • Le pointeur spécifie une adresse à laquelle est aligné inappropriée pour le type de l'objet cible.

  • Le pointeur spécifie une adresse non utilisée par le programme en cours de exécution.

Voir aussi

Référence

Expressions avec des opérateurs unaires

Opérateurs C++

Priorité des opérateurs et d'associativité

Opérateur address-of : et

Concepts

Indirection et opérateurs d'adresse