Компьютеры имеют ограниченный объем памяти. Они перезаписывают это хранилище. Это не как модель SSA, где каждое назначение создает новую переменную. Компьютеры действительно меняют значение существующего места хранения.
Язык Си определяется в терминах каждой переменной, имеющей свое собственное место в памяти. Присвоение нового значения не меняет адрес. Это не ссылка на новое неизменяемое значение, это действительно изменение хранилища для int i
. Запись нового значения неявно уничтожает предыдущее содержимое переменной . никуда не денется .
Вы можете посмотреть на пример использования указателей, чтобы увидеть, что после int *p = &i;
значение, полученное из *p
, меняется после того, как вы i=7;
Или обратитесь к учебнику по указателям на C для получения более подробной информации.
Это не "магия", просто электрически, как естественным образом работает ячейка памяти . Например, один триггер может быть изменен из одного состояния в другое путем подачи входного сигнала вместе с сигналом сброса, который говорит ему забыть свое старое значение.
Физическая аналогия - это лист бумаги с карандашом и ластиком, , а не большая стопка свежих учетных карточек. «Расходный материал» (карандашный карандаш и ластик) - это просто электроэнергия. (Точнее говоря, электрический заряд в КМОП-логике. Некоторые другие виды цифровой логики требуют, чтобы ток непрерывно непрерывно расходовал много энергии.)
Обычно создаются регистры ЦПSRAM (статическое ОЗУ), см. https://en.wikipedia.org/wiki/Static_random-access_memory#Writing. Одна ячейка обычно состоит из 6 транзисторов, например, как триггер, но более привлекательный и без тока, за исключением случаев, когда установлено новое значение. Это сохраняет 1 бит и может быть записано с новым значением любое количество раз, применяя сигнал разрешения записи для обновления ячейки SRAM до значения в ее входной строке.
Фактическая основная память обычноизготовлен из DRAM , где биты хранятся в виде заряда на конденсаторе. Каждый раз, когда вы читаете его, вы должны обновлять этот заряд, но это все та же концепция фиксированного местоположения, которая может быть записана с новыми значениями.