При определении указателя как он сам, так и его значение могут быть объявлены константами.
Для этого используется модификатор const:
type const * const имя_указателя инициализатор;
Ближайший к имени указателя модификатор const относится собственно к указателю,
а const перед символом '*' определяет "константность" начального значения, связанного с указателем.
Мнемоника очевидна, так как выражение *имя_указателя есть обращение к содержимому соответствующего участка памяти.
Таким образом, определение неизменяемого (константного) указателя имеет следующий формат:
type * const имя_указателя инициализатор;
Формат определения указателя на константу:
type const * имя_указателя инициализатор;
Можно определить неизменяемый (постоянный) указатель на константу. Например,
const float pi = 3.141593;
float const *const pointpi = π
Здесь невозможно изменить значение константы, обращаясь к ней с помощью выражения *pointpi. Нельзя изменить и значение указателя pointpi, то есть он всегда "смотрит" на константу 3.141593.