Выбор ответа Junior Указатели и ссылки спрашивают часто обновлено
Главное отличие ссылки от указателя
Вопрос
Что из этого верно для ссылки int& r, но не для указателя int* p?
Попробуйте сами
Выберите вариант, и откроется разбор.
Показать ответ и разбор
Коротко
Правильный ответ: Её нельзя перенаправить на другой объект после инициализации. Ссылка привязывается один раз при инициализации, присваивание r = y меняет значение объекта, а не привязку. - Изменять объект можно и через указатель, и через неконстантную ссылку. - Нулевой может быть указатель, а ссылка по правилам языка…
Варианты ответа
- Её нельзя перенаправить на другой объект после инициализацииправильный ответ
- Через неё можно изменить объект, а через указатель только читать
- Она может быть равна
nullptr, если объект ещё не создан - Она не занимает памяти ни при каких условиях, даже как член класса
Разбор
Ссылка привязывается один раз при инициализации, присваивание r = y меняет значение объекта, а не привязку.
- Изменять объект можно и через указатель, и через неконстантную ссылку.
- Нулевой может быть указатель, а ссылка по правилам языка всегда связана с объектом.
- Стандарт не гарантирует, что ссылка не занимает памяти: член-ссылка в классе обычно хранится как указатель.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.
Предыдущий вопрос
Ссылка на элемент вектора после push_back
Следующий вопрос
Когда указатель, когда ссылка