Почему const_cast создает два значения для одной переменной

Я читал о const_cast, поскольку он должен удалить постоянство переменной,

const int c1 = 100;
int *c2 = const_cast <int *>(&c1); // removing the constantness
*c2 = 200; // hence now i can edit it
cout << *c2 << endl; // reflect the changed value = 200
cout << c1 << endl; // still old value = 100

постоянство удалено и переменная, которую я могу редактировать, это то же самое, что передать ее какой-то функции, которая получает тип данных int *,

но почему одно и то же острое пространство показывает два значения?

Создает ли const_cast какое-то другое временное пространство?

0 ответов

Другие вопросы по тегам