gpt4 book ai didi

c - (&) 的地址给出编译器生成的地址或加载器生成的地址?

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

int a;
printf("address is %u", &a);

这是哪个地址..?我的意思是这是编译器生成的地址,即虚拟地址或加载程序在 RAM 中给定的物理地址......?

因为它每次打印的地址都不一样,我猜它一定是RAM中的地址。只是想确定一下。

请提供任何引用您的答案的链接。

最佳答案

为用户空间中的局部变量返回的地址始终是虚拟地址而不是物理地址。

在你的例子中,变量 a 被分配在本地存储(堆栈)上,每次你执行你的程序时,一个分配给你的函数的堆栈空间,变量位于这个堆栈中的特定偏移处frame,因为每次为变量返回的地址也会不同时,分配给程序的堆栈地址也可能不同。

关于c - (&) 的地址给出编译器生成的地址或加载器生成的地址?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9613786/

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