c - 当我们将 '&' 与一个变量相关联时,我们得到的地址是虚拟地址还是物理地址?

标签 c operating-system

<分区>

#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/

相关文章:

c - 使用 extern 和 #including 头文件有什么区别?

c - 当变量从数组末尾更改时,gdb 观察点将不起作用

c - 在这种情况下比较字符串指针是否有效?

c - 我要更改此代码中的哪些内容才能避免出现 "Bind: address already in use"错误?套接字/Linux/C

c - 当IP指向0时调试指令指针

c++ - 在 DLL 注入(inject)中访问内存会导致内存访问冲突

C11 VLA 矩阵访问

html - 不同版本的 Windows 之间的 HTML 渲染是否不同?

c - 管道上的多次读写

python - 在Python中使用子文件夹的名称为每个子文件夹创建空文件