Afficher : Delphi
C++
Préférences d'affichage
Constantes pointeur
De RAD Studio
Remonter à Pointeurs - Index
Un pointeur ou un objet pointé peut être déclaré avec le modificateur const. Aucun élément de type const ne peut changer de valeur. De même, il est illégal de créer un pointeur qui pourrait aller à l'encontre des lois de non affectabilité d'un objet constant. Prenons les exemples suivants :
int i; // i est un int int * pi; // pi est un pointeur sur int (non initialisé) int * const cp = &i; // cp est un pointeur constant sur int const int ci = 7; // ci est un int constant const int * pci; // pci est un pointeur sur un int constant const int * const cpc = &ci; // cpc est un pointeur constant sur un // int constant
Les affectations suivantes sont légales :
i = ci; // Affecte int-const à int *cp = ci; // Affecte int-const à un objet // pointé par un pointeur constant ++pci; // Incrémente un pointeur de const pci = cpc; // Affecte un pointeur-const-sur-const // à un pointeur-sur-const
Les affectations suivantes sont illégales :
ci = 0; // NON - affectation impossible d'un int-const ci--; // NON - impossible de modifier un int-const *pci = 3; // NON - affectation impossible d'un objet // pointé par un pointeur-sur-const cp = &ci; // NON - affectation impossible d'un pointeur-const, // même si la valeur reste inchangée cpc++; // NON - impossible de modifier un pointeur-const pi = pci; // NON - si cette affectation était permise, // vous pourriez donner une valeur à *pci // (valeur constante) en donnant une valeur à *pi.
Des règles semblables s'appliquent au modificateur volatile. Remarquez que const et volatile peuvent modifier un même identificateur.