Zeigerkonstanten
Nach oben zu Zeiger - Index (C++)
Ein Zeiger oder das Objekt, auf das gezeigt wird, kann mit dem const-Modifizierer deklariert werden. Einem Objekt, das als const deklariert ist, kann nichts zugewiesen werden. Es ist auch nicht zulässig, einen Zeiger anzulegen, der diese Regel verletzt. Betrachten Sie folgende Beispiele:
int i; // i ist ein int
int * pi; // pi ist ein Zeiger auf einen int (uninitialisiert)
int * const cp = &i; // cp ist ein konstanter Zeiger auf einen int
const int ci = 7; // ist ein konstanter int
const int * pci; // pci ist ein Zeiger auf einen konstanten int
const int * const cpc = &ci; // cpc ist ein konstanter Zeiger auf einen
// konstanten int
Folgende Zuweisungen sind zulässig:
i = ci; // const-int zu int
*cp = ci; // const-int zu Objekt, auf das ein
// konstanter Zeiger zeigt
++pci; // Inkrementieren eines Zeigers auf ein const
pci = cpc; // konstanter Zeiger auf einen const
// zu Zeiger auf const
Folgende Zuweisungen sind nicht zulässig:
ci = 0; // Falsch: Zuweisung zu const-int nicht erlaubt
ci--; // Falsch: const-int darf nicht geändert werden
*pci = 3; // Falsch: Zuweisung zu Objekt, auf das ein
// Zeiger auf const zeigt, nicht erlaubt
cp = &ci; // Falsch: Zuweisung zu einem konstanten Zeiger nicht
// erlaubt, auch wenn der Wert unverändert bleibt
cpc++; // Falsch: konstanter Zeiger darf nicht geändert werden
pi = pci; // Falsch: Wäre diese Zuweisung möglich, könnten
// Sie dem konstanten Wert *pci über *pi einen
// Wert zuweisen.
Ähnliche Regeln gelten für den Modifizierer volatile. Beachten Sie, dass const und volatile als Modifizierer für denselben Bezeichner verwendet werden können.