Что точно хранят указатели? (C++)

Вы пробовали установить

  server.context-path=/appname

в Spring Boot?

7
задан 13 June 2009 в 17:46
поделиться

6 ответов

Указатель - это просто число. Он хранит адрес в ОЗУ, где находятся данные. Сам указатель довольно мал (вероятно, того же размера, что и int на 32-битных архитектурах, long на 64-битных).

Вы правы, хотя int * не экономит место при работе с int s. Но дело не в этом (каламбур нет). Здесь есть указатели, так что вы можете иметь ссылки на вещи, а не просто использовать сами вещи .

13
ответ дан 6 December 2019 в 08:16
поделиться

На некоторых архитектурах есть дополнительные накладные расходы на указатели на символы, потому что архитектура поддерживает только адресные слова (32- или 64-битные значения). Таким образом, указатель на символ сохраняется как адрес слова и смещение символа внутри этого слова. Отмена ссылки на указатель включает выборку слова, а затем смещение и маскировку его значения для извлечения символа.

1
ответ дан 6 December 2019 в 08:16
поделиться

Адрес в памяти. Указывает куда-то! : -)

0
ответ дан 6 December 2019 в 08:16
поделиться

Как уже говорили другие, указатель хранит адрес памяти, который является «просто числом», но это абстракция. В зависимости от архитектуры процессора это может быть более одного числа, например, основание и смещение, которое необходимо добавить для разыменования указателя. В этом случае накладные расходы немного выше, чем если бы адрес был одним числом.

Да, есть накладные расходы при доступе к int или bool через указатель, а не напрямую, где процессор может поместить переменную в регистр. Указатели обычно используются там, где значение косвенного обращения перевешивает любые накладные расходы, например, обход массива.

Я имел в виду накладные расходы времени. Не уверен, что OP больше интересовался пространством или накладные расходы.

3
ответ дан 6 December 2019 в 08:16
поделиться

Адреса памяти.

Это места в памяти, где другие данные равны .

Указатели обычно представляют собой размер слова процессора, поэтому они обычно могут перемещаться за один цикл инструкций. Короче говоря, они быстрые.

4
ответ дан 6 December 2019 в 08:16
поделиться

Число относится к его адресу в памяти. Размер указателя обычно равен собственному размеру архитектуры компьютера, поэтому нет дополнительных накладных расходов по сравнению с любым другим примитивным типом.

1
ответ дан 6 December 2019 в 08:16
поделиться
Другие вопросы по тегам:

Похожие вопросы: