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

c++ const有关问题

2013-10-07 
c++ const问题const int ca 9const int * b &cacout ca *(&ca) *b endl*(const_casti

c++ const问题
const int ca = 9;
const int * b = &ca;
cout << ca << *(&ca) << *b << endl;

*(const_cast<int *>(b)) = 12;
cout << ca << *(&ca) << *b << endl;

输出结果 9 9 9
         9 9 12

这段代码中将const指针去掉const属性后,可以修改值,但是ca的值一直不变,但是ca所在地址的值确实修改了...所以想问问const int ca是怎么存储的?为什么会出现这种情况

分数不多了,还请大侠们不吝赐教 c++ 存储 指针 const
[解决办法]
有的编译器会直接把 ca 替换为9, 毕竟c++里建议用 const int a=9; 替代 #define a 9
[解决办法]
常量折叠说的是,在编译阶段,对该变量进行值替换,同时,该常量拥有自己的内存空间,并非像宏定义一样不分配空间,需澄清这点

热点排行