Выбор ответа Junior Указатели и ссылки спрашивают часто обновлено

const до и после звёздочки

Вопрос

Что можно делать с int* const p = &x;?

Попробуйте сами

Выберите вариант, и откроется разбор.

Показать ответ и разбор

Коротко

Правильный ответ: Менять значение p, но нельзя менять сам p. Читаем справа налево: p это константный указатель на int.

Варианты ответа

  1. Менять сам p, но нельзя менять значение *p
  2. Ничего нельзя менять: ни адрес, ни значение *p
  3. Менять значение *p, но нельзя менять сам pправильный ответ
  4. Всё можно: const после звёздочки игнорируется

Разбор

Читаем справа налево: p это константный указатель на int. Сам адрес зафиксирован, а объект изменяем.

  • Запрет на *p даёт const int* p (указатель на константу).
  • Запрет на всё даёт const int* const p.
  • const в этой позиции значим и проверяется компилятором.

Ответьте сами, а не прочитайте

В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.

Термины по теме