Adresse, pointeur et indirection en C
 
type
description
char*
pointeur de caractère (une variable de ce type contiendra l'adresse d'un caractère)
int*
pointeur d'entier (une variable de ce type contiendra l'adresse d'un entier)
float*
pointeur de réel (une variable de ce type contiendra l'adresse d'un réel)
bool*
pointeur de booléen (une variable de ce type contiendra une adresse de booléen)
char**
pointeur de pointeur de caractère
int***
pointeur de pointeur de pointeur d'entier ...
........
.........
Remarque: %p est le format pour l'affichage des variables de type pointeur.
int main(void)
{
  int* pointi;
  int j=10;
  int** ppointi;

  pointi = &j;    
  printf("Adresse de j: %p", pointi);
  printf("Valeur indirecte de pointi: %d", *pointi);
  *pointi = 15;
  ppointi = &pointi;
  printf("Adresse de pointi: %p", ppointi);
  printf("Valeur double indirecte de ppointi: %d", **ppointi);

  return(0);
}

/* met l'adresse de j dans pointi */
/* affiche l'adresse en mémoire de j */
/* affiche la valeur de j (10) */ 

/* affecte 15 à j  par indirection*/
/* met l'adresse de pointi dans ppointi */
/* affiche l'adresse de pointi */

/* affiche la valeur de j (15) */
suivant           plan