Как уже было отмечено, возможно, самый общий константный указатель является
const char* p;
переменная р может измениться, но точки данных Рдо является unmodifable ,
Однако перемещение константного ключевого слова слева от звездочки не изменяет значение декларации:
char const* p;
Я предпочитаю позже, так как она становится гораздо легче запомнить, куда поместить константные ключевые слова, когда объявляя константные указатели на константные указатели:
char const* const* p;
Опять же, переменная р может измениться, и данные указывают на это неизменяемый. Кроме того, данные объявляются как константные указатели, что означает, что они указывают на данные, которые нельзя изменить.
Более общего обозначение этого типа
const char* const* p;
Размещения константного ключевого слова непосредственно слева от звездочки он модифицирует (или амперсанд для справки) позволяет легко создавать сложные типы, связанные с константным ключевым словом. Например, указатель на константные указатели:
char const** p;
и константный указатель на указатели:
char* const* p;
Запомнить «читать» объявления указателя от справа налево, а не объявлять более чем один указатель в каждом утверждении, чтобы избежать много путаницы.
Это сообщение путается и не различает четко, когда значение const и когда указатель const. –
В любом случае требуется больше, чем чтение сообщения, чтобы четко понимать понятие. –
Вы также не можете узнать законы о дорожном движении. Вы не узнаете, как программировать без программирования, и вы не узнаете, что является законным и надежным, не читая книги. –