【发布时间】:2020-12-29 20:42:03
【问题描述】:
我试过这个程序来了解变量是如何存储的并且有疑问。
我编译了上面的代码并创建了一个可执行文件,我记下了输出(a、b、c、d 的地址)然后我删除了可执行文件并重新启动了我的电脑,然后当我修改变量的值时并重新执行代码。我发现与以前相同的地址被分配给变量。
这是我不明白的,因为变量存储在 RAM 中,而 RAM 是非常量的。
重启后地址怎么还是一样?
#include <stdio.h>
int main(){
int a=21, b=22, c=23, d=24;
printf("%p, %p, %p, %p", &a, &b, &c, &d);
}
输出:
0xffffcbec, 0xffffcbe8, 0xffffcbe4, 0xffffcbe0
【问题讨论】:
-
@Yunnosch 鉴于该问题已被编辑,并且您的答案似乎涵盖得很好,我认为没有必要发表新评论——我可以为您贡献的东西不多尚未涵盖。
标签: c variables memory-address