На самом деле, согласно стандарту, const
изменяет элемент непосредственно на его левый . Использование const
в начале объявления - это просто удобный умственный ярлык. Таким образом, следующие два утверждения эквивалентны:
char const * pointerToConstantContent1;
const char * pointerToConstantContent2;
Чтобы убедиться, что сам указатель не изменен, после звездочки следует ставить const
:
char * const constantPointerToMutableContent;
Чтобы защитить как указатель, так и содержимое, на которое он указывает, используйте две константы.
char const * const constantPointerToConstantContent;
Я лично принял всегда , помещая const после части, которую я намерен не изменять, так, чтобы поддерживать согласованность, даже когда указатель является частью, которую я хочу сохранить постоянной.