Есть некоторые вещи, которые программист должен понять, прежде чем углубляться в указатели и ссылки на C ++.
Сначала вы должны понять, как работает программа. Когда вы выписываете переменные, когда вы пишете операторы, вы должны понимать, что происходит на более низком уровне; важно знать, что происходит с точки зрения компьютера.
По сути, ваша программа становится данными в памяти (процессом), когда вы ее выполняете. На данный момент у вас должен быть простой способ ссылки на участки данных - мы называем эти переменные . Вы можете хранить вещи и читать их, все из памяти (памяти компьютера).
Теперь представьте, что вам нужно передать некоторые данные в функцию - вы хотите, чтобы эта функция манипулировала этими данными - вы можете сделать это, передав полный набор данных, или вы можете сделать это, передав свой адрес (местоположение данные в памяти). Все, что действительно нужно функции - это адрес этих данных, ей не нужны все данные целиком.
Таким образом, указатели используются именно для такого рода задач - когда вам нужно передать адрес данных - указатели фактически являются обычными переменными, которые содержат адрес.
C ++ упрощает работу со ссылками ( int & var ), но концепция та же. Он позволяет пропустить этап создания указателя для хранения адреса некоторых данных, и он делает все это автоматически для вас при передаче данных в функцию.
Это всего лишь простое представление о том, как они работают - вы должны прочитать в Google, чтобы найти более подробные ресурсы и все интересные вещи, которые вы можете сделать с помощью указателей / ссылок.