【发布时间】:2021-12-28 02:57:51
【问题描述】:
每次我运行完全相同的语句时,我都会在我的 C 程序中获得不同的内存位置。这不应该永远改变吗?是的,如果我将 &p 更改为 &x,它仍然会发生。我意识到这两个应该是不同的,但是当我重复运行(不编译)程序以查看它的内存地址时会发生这种情况。
#include <stdio.h>
#include <string.h>
int main()
{
int x = 30;
int* p;
p = &x;
printf("%p \n", &p);
}
【问题讨论】:
-
为什么你认为它不应该改变?
-
仅供参考,鉴于
printf参数列表,int x声明和p =声明都是毫无意义的;您正在打印指针变量p的地址,而不是指针变量p中保存的地址within。你真的应该包括你声称你得到的重复样本输出。 -
@alex01011 我被告知你为变量指定的内存地址永远不会改变。计算机还能如何使用指针?
-
whozcraig,是的,我故意这样做是为了检查 p 作为指针保存的地址是否发生变化。确实如此。此外,您必须单击证明才能查看我包含的 repitition 的图像。
-
011c 谢谢,这正是我想要的。