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 怀疑:对于上面的代码……将首先编译整个代码 怀疑:为什么采用变量强制编译器的地址来存储变量在内存中…甚至 解决方法
在您的代码示例中,add包含i的地址,而不是值.我相信你可能以为我没有存储在正常的内存中,除非/直到你拿到它的地址.不是这种情况.
const并不意味着该值存储在ROM中.它存储在普通内存(通常是堆栈)中,就像任何其他变量一样. const意味着编译器会花一些时间来阻止你修改值. const不是,而且从来没有打算成为某种安全机制.如果获取内存的地址并想要修改它,则可以这样做.当然,这几乎总是一个坏主意,但如果你真的需要这样做,那就有可能. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |