Salut!

J'ai vu dans la FAQ C la possibilité de déclarer des pointeurs sur constante.

Mais en faisant des tests je me suis aperçu que l'on pouvait contourner la constance des données:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
int  const a=10;
int  * p=&a;
(*p)++;
marche et incrémente une constante en passant par son pointeur.


Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
int   a=10;
int  const * p=&a;
a++;
marche et incrémente la valeur *p en passant par la variable pointée.

Quelle est alors l'utilité de déclarer des pointeurs sur constantes
si les données pointées n'ont pas été précedemment déclarées comme constantes?

Merci de m'éclairer.