c++:一个内存地址,居然可以存在两个不同的值


#include<iostream>
using namespace std;
int main()
{
    const int a = 10;
    const int * p = &a;
    int *q;
    q = const_cast<int *>(p);
    *q = 20;    //fine
    cout <<a<<" "<<*p<<" "<<*q<<endl;
    cout <<&a<<" "<<p<<" "<<q<<endl;
    return 0;
}


运行结果:
10 20 20
002CFAF4 002CFAF4 002CFAF4

const 类型的变量,也叫做常量。
既然是常量,编译器就可以直接用字面值代替变量。
比如:cout<<a<<....
编译器可以直接编译为cout<<10<<...

参考网址:https://bbs.csdn.net/topics/392270821

猜你喜欢

转载自blog.csdn.net/Cary_1029/article/details/84199048
今日推荐