% 10;
После того, как значение переменной 'x'
меняется, то 'x' указывает на иную область в памяти, или на ту же ячейку, но уже с другим значением?
x — не указатель, он никуда не указывает.
Просто переменная x получает сначала одно значение, потом другое, затем третье.
(0) переменная не указывает на область памяти, это имя объекта, который размещен в памяти (1) по смыслу вашего вопроса - вариант "на ту же ячейку, но уже с другим значением"
а так можно делать?
странно было бы, если бы в языке была определена операция присваивания и было бы запрещено её использовать....
Ты можешь после каждого присваивания выводить адрес переменной x на консоль и таким образом убедиться, что это одна и та же переменная.
она называется "переменная", потому что её значение может изменяться
Илья, давай всё-таки воздерживаться от связи между адресом объекта и ячейкой памяти :)
Я же тебе сейчас напишу #include <new> struct Some{ const int x; }; int test() { Some s{14}; s.~Some(); new (&s) Some{42}; return s.x; } и заявлю, что переменная всё-таки связана с объектом, а не областью памяти, потому что basic.life#8 не проходит по признаку 8.3
Потому что преобразование из ячейки памяти в адрес объекта нетривиально и называется std::launder
В смысле не указывает ? По переменной и узнается адрес
читаем тред дальше
Обсуждают сегодня