<分区>
#include<stdio.h>
int main()
{
int a;
printf(" %u ",&a);
return 0;
}
我们得到的地址是进程的虚拟地址或者 进程在主存中运行时的物理地址。 请帮忙 我很困惑!!
<分区>
#include<stdio.h>
int main()
{
int a;
printf(" %u ",&a);
return 0;
}
我们得到的地址是进程的虚拟地址或者 进程在主存中运行时的物理地址。 请帮忙 我很困惑!!
最佳答案
如果您在具有虚拟内存的系统上运行该程序,您将获得一个虚拟地址。如果您在没有虚拟内存的系统(通常是较小的嵌入式系统)上运行,您将获得一个物理地址。
另请注意,"%u"
格式对于指针是错误的,如果您想使用 printf
打印指针,您应该使用 "%p “
。参见例如this reference .
关于c - 当我们将 '&' 与一个变量相关联时,我们得到的地址是虚拟地址还是物理地址?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21382715/