Указатель — это переменная, которая хранит адрес в памяти, а ссылка — это просто другое имя для существующего объекта. Главное отличие в том, что ссылки обязательно инициализируются при объявлении, а указатели можно объявить без инициализации.
nullptr), но ссылки всегда указывают на какой-то объект&, но разыменовывать не нужно; указатели требуют разыменования через *Ссылки безопаснее и понятнее, когда тебе нужен гарантированный псевдоним объекта. Используй ссылки, когда:
Указатели более гибкие и необходимы, когда:
int x = 5;
int& ref = x; // Ссылка - обязательно инициализировать, нельзя менять
int* ptr = &x; // Указатель - можно переприсвоить
ptr = nullptr; // Валидно
// ref = nullptr; // Невалидно - нельзя перепривязать ссылку
Итого: выбирай ссылки для стабильных псевдонимов и указатели, когда нужна гибкость.
Ссылки должны быть инициализированы при объявлении и не могут быть переназначены на другой объект, тогда как указатели можно переназначать и они могут находиться в неинициализированном состоянии.
Новый — ещё не проверен сообществом
Вы