Что происходит, когда мы используем & перед указателем?

The book doesn't really say about what & in front of a pointer gives. enter image description here

6
^^ ... но то же, что и адрес, в котором хранится адрес.
добавлено автор John Zwinck, источник
Самое главное, чтобы узнать о указателях, заключается в том, что в указателях нет ничего особенного.
добавлено автор molbdnilo, источник
Ваша книга действительно говорит точно, что она дает - она ​​говорит «Адрес переменной указателя p» прямо там, на странице.
добавлено автор molbdnilo, источник
& p указывает адрес p . Поскольку p , в вашем примере имеет тип int * (т.е. указатель на int ) & p дает результат типа int ** (то есть указатель на указатель на int ), поэтому работает назначение p1 = & p . * p1 предоставит эквивалент результата (то же значение и тот же тип) в p , а ** p1 даст значение, на которое указывает < code> p - это переменная a , которая имеет значение 125 .
добавлено автор Peter, источник
^^ ... не следует путать с адресом, хранящимся в указателе.
добавлено автор WhozCraig, источник
Он дает вам адрес, в котором хранится указатель.
добавлено автор Osiris, источник

6 ответы

a = int variable
p = address of a
pl = address of p
*p = a
*pl = p
**pl = a
3
добавлено
Благодаря интеллектуальному пользователю для голосования. Я проголосовал за остальные ответы. Я предполагаю, что достижение божественных уровней интеллекта требует таких действий.
добавлено автор luci88filter, источник

Когда вы храните значение в переменной:

a = 125

значение od 125 хранится где-то в памяти

p = &a

p получает адрес ячейки памяти, в которой хранится a .

pl = &p

Наконец, pl получает адрес в памяти, где хранится сам указатель.

So & is giving you the address of the memory location. As your book is showing you.

3
добавлено

For example: you have an integer variable x, in this variable you have the value 52. But to know where you have the address in memory of this variable you use &x, that will point to the address where the variable is stored in memory.

Если вы хотите сохранить значение в адресе памяти y , вы используете * y .

2
добавлено

хранит адрес переменной a в указателе p

quick Google search: https://www.tutorialspoint.com/cprogramming/c_pointers.htm

1
добавлено
Использование '&' не выполняет хранения . Будьте осторожны с тем, как вы формулируете свои ответы.
добавлено автор SamTebbs33, источник

The book doesn't really say about what & in front of a pointer gives

The book says exactly what & in front of a pointer gives: "Address of pointer variable p".

Как видно из объявления pl , он имеет тип int ** .

Указатель может указывать на любой тип (или none, для void * ), и этот указывает на другой указатель.

0
добавлено

& in front of a variable yields the address of the variable.
& in front of a pointer   yields the address of the variable.

0
добавлено
pro.cxx
pro.cxx
3 049 участник(ов)

C/C++ chat 0. Простые вопросы, лабы и о IDE — в чат новичков @supapro 1. Не хамим, не переходим на личности, не вбрасываем утверждения без доказательств 2. No Ads, offtop, flood Объявления о вакансиях и евенты - в лс @AlexFails https://t.me/ProCxx/259155

supapro.cxx
supapro.cxx
1 925 участник(ов)

Чат для тех, кто немного знает C++, простые вопросы по реализации, синтаксису и ide – сюда, а для другого есть: /Главный чат по серьезным вопросам — @ProCxx /Чат по обсуждению всего — @fludpac

C++ Russia
C++ Russia
384 участник(ов)

Сообщество разработчиков C++ в Telegram.

cxx.Дискуссионная
cxx.Дискуссионная
298 участник(ов)

это не двач, общайтесь вежливо; разговор на почти любые темы; Не согласны с баном? В лс @AlexFails, @ivario

C++ для маленьких и тупых
C++ для маленьких и тупых
105 участник(ов)

Лоу левел (по среднему IQ участников) чатик ExtremeCode @extremecode Флудилка @extremecode_rest