gpt4 book ai didi

c++ - 局部变量的相对内存位置

转载 作者:搜寻专家 更新时间:2023-10-31 01:43:24 25 4
gpt4 key购买 nike

这是那些烦人的问题之一,但我只是为了了解而想知道。

当声明局部函数变量时,声明的顺序是否会影响这些变量在内存中相对于彼此的位置?是否可以根据它们的声明顺序确定 a 和 b(如下)的相对内存位置?

我读到顺序确实有所不同,因为稍后声明的变量(如下面的 b)将比之前声明的变量(如下面的 a)具有更低的内存地址。但是,根据我的实验,我得到了不同的结果。

这是完全随机的东西还是可以根据声明顺序确定相对内存位置(即“&a 总是比 &b 低的内存地址”)?

例如:

int func()
{
int a = 0;
char b = 'C';

b = 'D';
return ++a;
}

最佳答案

简而言之,这完全取决于编译器。它还取决于目标平台、优化选项等。

此外,变量甚至可能没有地址(因为它已被优化掉,存在于寄存器中等)。

在您的具体示例中,我的编译器不会为 ab 分配任何存储空间,因此无法说明它们的相对地址。

关于c++ - 局部变量的相对内存位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25231606/

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