Что на самом деле происходит в C, когда хранится не указатель? [Дубликат]
На этот вопрос уже есть ответ:
Указатель на уточнение указателя 16 ответовВАЖНЫЙ Это пыталось просить слишком много вещей одновременно и вводило в заблуждение, потому что я написал это под ложным предположением о том, как можно использовать указатели, и в итоге это выглядело как дубликат. Пожалуйста, посмотрите это вместо этого: Как переменные связаны со своими значениями в C?
Давайте рассмотрим, что есть значение4
по адресу0001
, а затем мы назначаем адрес0001
в переменнуюnum
. Мы можем представить это в виде двух таблиц:
VARIABLE|ADDRESS ADDRESS|VALUE
num |0001 0001 |4
Из того, что я понимаю, это будет конечный продукт следующего кода:
int temp = 4;
int * num = &temp;
Однако, что происходит в первой строке,int temp = 4;
? Эта первая строка производит что-то вроде этого?
VARIABLE|ADDRESS ADDRESS|VALUE
| temp |4
А как работают указатели на указатели? Будет ли код:
int temp = 4;
int * num = &temp;
int ** pnum = #
изготовить это?
VARIABLE|ADDRESS ADDRESS|VALUE
num |0001 0001 |4
pnum |0002 0002 |0001
Как правильно думать об этом? Что на самом деле происходит под капотом? Кроме того, как это меняется, когда структура хранится вместо числа?
Я понимаю, что приведенные выше примеры, вероятно, совершенно неверны; они должны были просто контекстуализировать мой вопрос.