首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

const int用const_cast转换后的有关问题

2012-09-14 
const int用const_cast转换后的问题C/C++ codeconst int const_int123int& test_const_castconst_cast

const int用const_cast转换后的问题

C/C++ code
        const int const_int=123;    int& test_const_cast=const_cast<int&>(const_int);    cout<<test_const_cast<<endl;//输出为123    test_const_cast=3;        //004016F9   mov         eax,dword ptr [ebp-1Ch]        //004016FC   mov         dword ptr [eax],3 ;的确改变了存储单元的值    int a=const_int;          //00401702   mov         dword ptr [ebp-20h],7Bh;直接将7BH传给a    cout<<"a\t"<<a<<endl;//123    cout<<"const_int\t"<<const_int<<endl;//123    cout<<"test_const_cast\t"<<test_const_cast<<endl;//3

编译器在编译时遇到const_int,是不是优先将其看作枚举类,直接将它替换为对应的整型常量,不考虑其存储单元的值?
而将int换为float,执行上述相同操作后,const_float也会随之改变。是不是存储方式的不同导致的?

[解决办法]
const_int确实是在编译时被数字替换了,至于float,不懂
[解决办法]
测试了,改成float确实如LZ所说

也觉得与存储方式有关
[解决办法]
C/C++ code
test_const_cast=3; 

热点排行
Bad Request.