概述
1、const 全局变量在只读存储区,调用const_cast修改const全局变量的常量性并修改其值对出现写入错误;而对于局部变量则没有事,修改常量性后可以实现修改。
但是,由于const变量是在编译时确定的,在运行时并没有从内存中读取const变量的值,而是直接从寄存器读取的,因此即使用const_cast去除了const变量的常量性,并修改了变量的值,输出仍为原始值
void main(void)
{
const int q=10;
const int *p = &q;
int *m = const_cast<int*>(p);
*m = 40;
int a = q;
cout<<a;
}
此时,q的值已经是40,但是代码输出值为10,即a=10。
可以通过对const变量加volatile,使每次使用q时都从内存中读取其值,从而得到正确结果
最后
以上就是粗犷微笑为你收集整理的const 全局变量的全部内容,希望文章能够帮你解决const 全局变量所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复