В основе вашей проблемы, похоже, лежит непонимание физической природы памяти и указателей. Не так, как работает код. Как я уверен, вы знаете, физическая память состоит из большой группы соседних ячеек. Адреса этих ячеек фиксируются и жестко кодируются самим компьютером, а не программными приложениями или языком программирования, который вы используете. Когда вы ссылаетесь на & a, вы имеете в виду физический блок памяти, в котором в настоящее время хранится ваше значение, которое вы сохранили в памяти компьютера. «a» - это просто имя, которое вы дали компьютеру, чтобы он точно знал, в каком блоке памяти найти значение, которое вы сохранили. Я думаю, что это в значительной степени покрывает адрес памяти.
Теперь перейдем к указателям. Указатель - это еще один адрес памяти, на который ссылается компьютер. У него есть любое имя, которое вы ему дадите. В этом случае это должно называться как-нибудь еще, кроме того же имени, которое вы дали вашему первому значению. Давайте назовем это «б». На основании того, как вы это заявили. Ячейка памяти b может содержать только один тип данных ... другую ячейку памяти .... поэтому, когда я говорю: b = & a, я говорю, что адрес памяти равен 'b' (который предназначен только для хранения адреса памяти), для хранения адреса памяти «а». Между тем в другой части города в адресе памяти «а» хранится целое число.
Надеюсь, это не смутило, я старался не показывать вам всю техногу. Если вы все еще в замешательстве. Опубликуйте еще раз, я объясню с кодом в следующий раз.
-UBcse