Одной из отличительной способностью С/С++, которая отличает его от большинства современных языков является возможность управлять памятью. Если в большинстве других современных языков все это скрыто, то в С++ ты можешь всем этим управлять. Тебе это даёт больше возможностей, но и накладывает больше ответственности. То есть ты сам должен следить за выделением памяти и её очисткой.
Указатель это переменная которая хранит адрес чего-то в памяти.
Переменная, начало массива, объект неважно.
Представь, что память - огромный ряд гаражей. Так вот указатель - это номер гаража, в котором ты можешь найти данные.
Указатель обозначается звездочкой.
Чтобы получить адрес переменной используется амперсанд(&
int a; //Обычная переменная
int* b; //Указатель на переменную
cout
Указатель – это переменная, которая хранит адрес объекта в памяти.Для возможности хранения адреса объекта используется операция взятия адреса (&.Для прямого доступа к объекту используется операция разыменования указателя (*).Для косвенного доступа к объекту используется оператор косвенного доступа (->.Для эффективного доступа, к однотипным объектам последовательно расположенным в памяти, с помощью указателей можно использовать адресную арифметику.Указатели позволяют выполнить динамическое выделение и освобождение памяти.Имя массива – указатель на его первый элемент.
Оперативная память машины логически является большим одномерным массивом байт.
Указатель - это адрес (порядковый номер) байта в памяти. Бывают более сложные модели адресации, но они в основном вышли из употребления. Разве что столкнёшься с MS-DOS.
Если тип данных занимает больше одного байта, то указатель на этот тип - это адрес его первого по порядку байта.
Ссылка - это замаскированный указатель. Если для получения значения по указателю применяется операция разыменования (например, *p или p->field), то со ссылкой можно обращаться, как с самим значением. Страуструп ввёл эту штуку в язык, чтобы можно было переопределять операции (a + b выглядит более естественно, чем *a + *b), но поскольку механизм ссылок (как и всё в C++) проектировался на коленке, без должного продумывания всех аспектов, то получилась синтаксическая каша, которую уже 40 лет пытаются привести в порядок, всё усложняя и усложняя стандарт, и до сих пор эта цель не достигнута.