加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c中的const变量

发布时间:2020-12-16 09:32:41 所属栏目:百科 来源:网络整理
导读:这些是一些愚蠢的问题..我想问.请帮助我理解它 const int i=100; //1///some codelong add=(long)i; //2 怀疑:对于上面的代码……将首先编译整个代码 用于决定是否应该分配内存..或者首先它将存储 在只读内存位置变量,然后在2处分配stroage 怀疑:为什么采
这些是一些愚蠢的问题..我想问.请帮助我理解它

const int i=100;   //1
///some code
long add=(long)&i;  //2

怀疑:对于上面的代码……将首先编译整个代码
用于决定是否应该分配内存..或者首先它将存储
在只读内存位置变量,然后在2处分配stroage

怀疑:为什么采用变量强制编译器的地址来存储变量在内存中…甚至
虽然rom或者注册也有地址

解决方法

在您的代码示例中,add包含i的地址,而不是值.我相信你可能以为我没有存储在正常的内存中,除非/直到你拿到它的地址.不是这种情况.

const并不意味着该值存储在ROM中.它存储在普通内存(通常是堆栈)中,就像任何其他变量一样. const意味着编译器会花一些时间来阻止你修改值.

const不是,而且从来没有打算成为某种安全机制.如果获取内存的地址并想要修改它,则可以这样做.当然,这几乎总是一个坏主意,但如果你真的需要这样做,那就有可能.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读