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
    请按任意键继续. . .

  • 相关阅读:
    关于Response.End的亦常
    关于web.config
    本地打印机的设置
    xml的操作
    javascript定义对象的几种简单方法
    WindowsXP下共享无线网络设置步骤
    第四章:使用Rich控件
    第五章母版页
    第八章数据访问概述
    对lock(obj)中的obj的理解
  • 原文地址:https://www.cnblogs.com/rollenholt/p/2478818.html
Copyright © 2011-2022 走看看