我是靠谱客的博主 粗犷微笑,这篇文章主要介绍const 全局变量,现在分享给大家,希望可以做个参考。

1、const 全局变量在只读存储区,调用const_cast修改const全局变量的常量性并修改其值对出现写入错误;而对于局部变量则没有事,修改常量性后可以实现修改。
但是,由于const变量是在编译时确定的,在运行时并没有从内存中读取const变量的值,而是直接从寄存器读取的,因此即使用const_cast去除了const变量的常量性,并修改了变量的值,输出仍为原始值

复制代码
1
2
3
4
5
6
7
8
9
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内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(72)

评论列表共有 0 条评论

立即
投稿
返回
顶部