内存地址显示两个不同的值。
我们有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