Utilisation du const
Pointeurs
-
un tableau est un pointeur constant :
int tab[4]; ==>
tab++; interdit mais *tab=12; autorisé
-
on peut définir un pointeur constant :
int * const pe = tab; ==>
pe++; interdit mais *pe=12; autorisé
-
on peut définir un pointeur sur constante :
const int * pe = tab; ==>
pe++; autorisé mais *pe=12; interdit
-
on peut définir un pointeur constant sur constante :
const int * const pe = tab; ==>
pe++; interdit et *pe=12; interdit
mais int i=*pe; autorisé
Passage de paramètres
- Les notations précédentes peuvent être utilisées
dans une liste de paramètres formels :
void proc( const int * pe ) { *pe=0; /* interdit */ }
int j=5; proc(&j); /* j n'est jamais modifie */
- const utilisable même sans pointeurs :
void proc(int i) {i=3*i; /* autorise */ printf("%d",i);}
int j=5; proc(j); /* j vaut toujours 5 */
mais :
void proc(const int i) {i=3*i; /* interdit */ printf("%d",i);}
int j=5; proc(j); /* j vaut toujours 5 */
Dernière mise à jour :