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
Priorité des opérateurs et d'associativité