此行为有任何解释吗?

时间:2019-01-16 20:01:25

标签: pointers c++14

内存地址显示两个不同的值。

我们有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

0 个答案:

没有答案
相关问题