gpt4 book ai didi

c++ - C++ 中的 const 变量

转载 作者:太空狗 更新时间:2023-10-29 20:18:08 25 4
gpt4 key购买 nike

这些是一些愚蠢的问题..我想问..请帮助我理解它

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

疑问:对于上面的代码..编译器会先遍历整个代码吗
用于决定是否应该分配内存..或者首先它会存储
只读内存位置中的变量,然后..在 2 处分配存储空间

疑问:为什么获取变量地址强制编译器将变量存储在内存中......甚至
虽然rom或register也有地址

最佳答案

在您的代码示例中,add 包含 i 的地址,而不是值。我相信您可能认为 i 没有存储在正常内存中,除非/直到您获取它的地址。事实并非如此。

const 并不意味着该值存储在 ROM 中。它像任何其他变量一样存储在普通内存(通常是堆栈)中。 const 意味着编译器将竭尽全力防止您修改该值。

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

关于c++ - C++ 中的 const 变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4996692/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com