Адрес памяти показывает два разных значения.
У нас есть переменная const (a), и мы помещаем адрес переменной в два указателя (b и c). После изменения значения по адресу в одном из указателей (c) у нас возникла ситуация, когда один и тот же адрес памяти имеет два разных значения.
Есть ли объяснение этому поведению?
#include <iostream>
int main(void)
{
const int a = 99;
const int *b = &a;
int *c = (int *)b;
std::cout << &a << " - " << a << '\n';
std::cout << b << " - " << *b << '\n';
std::cout << c << " - " << *c << "\n\n";
*c = 61;
std::cout << &a << " - " << a << '\n';
std::cout << b << " - " << *b << '\n';
std::cout << c << " - " << *c << '\n';
return 0;
}
// вот результат (вывод)
003CFAA4 - 99
003CFAA4 - 99
003CFAA4 - 99
003CFAA4 - 99
003CFAA4 - 61
003CFAA4 - 61