IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
next up previous contents index
Next: Exercice Up: Les pointeurs Previous: Opérateur adresse de

Sous-sections

Opérateur d'indirection

 

Lorsque l'opérateur * est utilisé en opérateur préfixé, il agit de l'opérateur indirection qui, appliqué à une valeur de type pointeur, délivre la valeur pointée. On peut écrire par exemple :

int i;
int *pi;

pi = &i;       /*   initialisation du pointeur pi                 */
*pi = 2;       /*   initialisation de la valeur pointée par pi    */
j = *pi + 1;   /*   une utilisation de la valeur pointée par pi   */

Remarque

  L'opérateur * est surchargé : il peut être opérateur de multiplication ou opérateur d'indirection. La grammaire lève l'ambiguïté car l'opérateur d'indirection est préfixé, alors que l'opérateur de multiplication est infixé. Surcharger les opérateurs gêne la lisibilité des programmes. Exemple : si i et j sont des pointeurs vers des entier, la multiplication des deux valeurs pointées s'écrit : *i**j

Devinette

Si i et j sont des pointeurs vers des entiers, *i**j est le produit des valeurs pointées, mais *i/*j est-il le quotient des valeurs pointées ? Réponse à la fin de ce chapitre.



Bernard Cassagne
1998-12-09