a
- переменная типа указателя, что означает, что данные, которые она содержит, являются адресом памяти.Таким образом, печать a
печатает адрес памяти, который он хранит, адрес переменной, на которую он указывает.
И a
- переменная, она хранится где-то в памяти, a
также имеет адреси &a
является этим адресом.
Таким образом, у вас есть 2 переменные: a
и одна, созданная new(int)
, адрес которой возвращается new()
и какой адрес мы храним в a
.
Пожалуйста, прочитайте это для ясного и краткого введения в указатели:
Дэйв Чейни: поймите указатели Go менее чем за 800 слов или ваши деньги обратно