Я работаю через Go Ebook
.
Здесь мы создаем массив указателей следующим образом:
sampleArray := [5]*int{0: new(int), 1: new(int)}
Как вы можете видеть, индекс 0 и индекс 1 из sampleArray
содержат инициализированные целые числа, тогда как остальные индексы содержат неинициализированные целые числа.
Затем они выполняют следующую операцию:
*sampleArray[0] = 10
*sampleArray[1] = 20
При этом значения sampleArray
должны быть:
[0] => address (integer pointer) -> 10
[1] => address (integer pointer) -> 20
[2] => nil (integer pointer)
[3] => nil (integer pointer)
[4] => nil (integer pointer)
Мой вопрос: почему мысделайте это:
*sampleArray[0] = 10
*sampleArray[1] = 20
А не это:
sampleArray[0] = 10
sampleArray[1] = 20
Мне кажется, что мы присваиваем значение указателю, который указывает на другой указатель.Не должны ли мы присвоить значение фактической памяти?
Почему бы и нет?
&sampleArray[0] = 10
&sampleArray[1] = 20
Я чрезвычайно новичок в указателях, поэтому, пожалуйста, любая ваша помощь будет полезна