我是靠谱客的博主 粗犷微笑,最近开发中收集的这篇文章主要介绍const 全局变量,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

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 全局变量所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

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

评论列表共有 0 条评论

立即
投稿
返回
顶部