zoukankan      html  css  js  c++  java
  • 为何地址一样,值却不一样?

    先看代码:

    #include <iostream>
    using namespace std;
    
    int _tmain(int argc, _TCHAR* argv[])
    {
        const  int a = 1;
        int *p = const_cast<int*>(&a);
        *p = 2;
    
        cout << "value a="<< a << endl;
        cout << "value *p=" <<*p << endl;
        cout << "address a=" <<&a << endl;
        cout << "address p=" <<p << endl;
    
        return 0;
    }

    输出结果:

    value a=1
    value *p=2
    address a=0022FBC8
    address p=0022FBC8
    请按任意键继续. . .

    采用volatile关键字,修改为:

    #include <iostream>
    
    using namespace std;
    
    int _tmain(int argc, _TCHAR* argv[])
    {
        const volatile int a = 1;
        int *p = const_cast<int*>(&a);
        *p = 2;
    
        cout << "value a="<< a << endl;
        cout << "value *p=" <<*p << endl;
        cout << "address a=" <<&a << endl;
        cout << "address p=" <<p << endl;
    
    
        return 0;
    }

    结果为:

    value a=2
    value *p=2
    address a=1
    address p=0042FDB8
    请按任意键继续. . .

  • 相关阅读:
    CM金丝雀Canary报错
    ucloud自动创建instance
    拷贝文件
    10.使用du将文件按大小进行排序
    9.ssh登录慢
    8.perf top系统性能分析工具
    7.Linux查找目录下的所有文件中是否含有某个字符串
    6.Linux查看哪个进程占用磁盘IO
    5.Linux常用排查命令
    4.Linux系统命令及其使用详解
  • 原文地址:https://www.cnblogs.com/rollenholt/p/2478818.html
Copyright © 2011-2022 走看看