У меня есть несколько вопросов. Это не домашнее задание. Я просто хочу понять лучше.Попытка понять * и & в C++
Так что, если у меня есть
int * b = &k;
Тогда
k
должно быть целым числом, аb
является указателем наk
«s положение в памяти, правильно?В чем заключается «тип данных»
b
? Когда я вывожу его, он возвращает такие вещи, как0x22fe4c
, который я предполагаю шестнадцатеричным для позиции памяти2293324
, правильно?Где именно находится позиция памяти '2293324'? «Куча»? Как я могу вывести значения, например, в позиции памяти
0
,1
,2
и т. Д.?Если выходной я
*b
, это то же самое, как выводk
непосредственно, потому что*
каким-то образом означает, что значение указываетb
. Но это выглядит иначе, чем объявлениеb
, которое было объявленоint * b = k
, поэтому, если*
означает «значение», то это не значит «объявитьb
на значениеk
? Я знаю, что это не так, но я все еще хочу понять именно то, что это означает, что язык мудрого.Если я выход
&b
, это фактически возвращая адрес самого указателя, и не имеет ничего общего сk
, правильно?Я также могу сделать
int & a = k;
, который кажется как это делаетсяint a = k;
. Как правило, нет необходимости использовать&
таким образом?
@intboolstring Это не дубликат, так как некоторые из моих вопросов не в этой связи. –
Ну, вы должны были поставить те, которые там не рассматривались. – intboolstring
Также, согласно комментариям в этой ссылке, некоторая информация неточна. Я не хочу потенциально учиться неточным вещам. –