Typ Deklarationen sollten (?) gelesen werden RTL. const
modifiziert das Ding auf der linken Seite, aber die Regel wird durch die Tatsache kompliziert, dass Sie sowohl const T
als auch T const
schreiben können (sie meinen dasselbe).
T * const
ist ein konstanter Zeiger auf veränderbares T
T & const
wäre konstante Referenz auf veränderbares T , außer Referenzen sind per Definition T const *
ist ein veränderbarer Zeiger auf die Konstante T
T const &
ist eine Referenz auf die Konstante T
T const * const
ist konstanter Zeiger auf die Konstante T
Es ist ein konstanter Zeiger auf ein konstantes unsigniertes Zeichen. Sie können weder den Zeiger noch das, auf das er zeigt, ändern.
In einer Deklaration wie const * const T
bedeutet das erste const
(vor *
), dass der Zeiger auf bei zeigt const
(dh es ist ein Zeiger auf ein% co_de) %). % Co_de% nach const T
bedeutet, dass der Zeiger selbst const
ist (d. H. Nicht geändert werden kann, um auf etwas anderes zu zeigen).
Dies macht es zu einem const-Zeiger auf einen const-Wert und nicht zu einem veränderbaren Zeiger auf einen const-Wert oder einem const-Zeiger auf einen veränderbaren Wert.