GeeksforGeeks
int const*
int const* ist Zeiger auf konstante Ganzzahl
Dies bedeutet, dass die deklarierte Variable ein Zeiger ist, der auf eine konstante Ganzzahl zeigt. Effektiv bedeutet dies, dass der Zeiger auf einen Wert zeigt, der nicht geändert werden sollte. Const qualifier wirkt sich in diesem Szenario nicht auf den Zeiger aus, sodass der Zeiger auf eine andere Adresse zeigen darf.
Das erste const Schlüsselwort kann zu beiden Seiten des Datentyps gehen, daher ist int const* äquivalent zu const int* .
int *const
int *const ist ein konstanter Zeiger auf integer
Dies bedeutet, dass die deklarierte Variable ein konstanter Zeiger ist, der auf eine Ganzzahl zeigt. Effektiv bedeutet dies, dass der Zeiger nicht auf eine andere Adresse zeigen sollte. Const qualifier wirkt sich in diesem Szenario nicht auf den Wert von integer aus, sodass sich der in der Adresse gespeicherte Wert ändern kann.
const int* const
const int* const ist ein konstanter Zeiger auf eine konstante Ganzzahl
Dies bedeutet, dass die deklarierte Variable ein konstanter Zeiger ist, der auf eine konstante Ganzzahl zeigt. Effektiv bedeutet dies, dass ein konstanter Zeiger auf einen konstanten Wert zeigt. Daher sollte weder der Zeiger auf eine neue Adresse zeigen noch der Wert, auf den gezeigt wird, geändert werden.
Das erste Schlüsselwort const kann auf beiden Seiten des Datentyps stehen, daher ist const int* const äquivalent zu int const* const .
Speicherkarte
Eine Möglichkeit, sich an die Syntax zu erinnern (nach Bjarne Stroustrup), ist die Spiralregel-
Die Regel besagt, beginnen Sie mit dem Namen der Variablen und bewegen Sie sich im Uhrzeigersinn zum nächsten Zeiger oder Typ. Wiederholen, bis Ausdruck endet.
Die Regel kann auch als Dekodierung der Syntax von rechts nach links angesehen werden.
Daher,
- int const* ist Zeiger auf const int
- int *const ist const Zeiger auf int
- int const* const ist const Zeiger auf const int
Mit dieser Regel können auch komplexe Deklarationen dekodiert werden wie,
- int ** const ist ein const Zeiger auf Zeiger auf ein int.
- int * const * ist ein Zeiger auf const Zeiger auf ein int.
- int const ** ist ein Zeiger auf einen Zeiger auf ein const int .
- int * const * const ist ein const-Zeiger auf einen const-Zeiger auf ein int.
Achtung Leser! Hör jetzt nicht auf zu lernen. Holen Sie sich alle wichtigen C ++ Foundation- und STL-Konzepte mit den C ++ Foundation- und STL-Kursen zu einem studentenfreundlichen Preis und machen Sie sich bereit für die Branche.