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

Главное отличие ссылки от указателя

Вопрос

Что из этого верно для ссылки int& r, но не для указателя int* p?

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

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

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

Коротко

Правильный ответ: Её нельзя перенаправить на другой объект после инициализации. Ссылка привязывается один раз при инициализации, присваивание r = y меняет значение объекта, а не привязку. - Изменять объект можно и через указатель, и через неконстантную ссылку. - Нулевой может быть указатель, а ссылка по правилам языка…

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

  1. Её нельзя перенаправить на другой объект после инициализацииправильный ответ
  2. Через неё можно изменить объект, а через указатель только читать
  3. Она может быть равна nullptr, если объект ещё не создан
  4. Она не занимает памяти ни при каких условиях, даже как член класса

Разбор

Ссылка привязывается один раз при инициализации, присваивание r = y меняет значение объекта, а не привязку.

  • Изменять объект можно и через указатель, и через неконстантную ссылку.
  • Нулевой может быть указатель, а ссылка по правилам языка всегда связана с объектом.
  • Стандарт не гарантирует, что ссылка не занимает памяти: член-ссылка в классе обычно хранится как указатель.

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

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

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