虚拟内存或物理内存

sha*_*enk 2 c c++ memory virtual-memory

假设我们用C编写一个程序并打印程序中声明的一个变量的地址,那么在屏幕上打印的地址是虚拟地址还是变量的物理地址?如果它是虚拟地址,为什么它仍然具有与物理内存的位范围相同的范围?例如.对于32位机器,如果它返回0x833CA23E.

mer*_*011 6

地址将是一个虚拟地址虚拟内存,因为应用程序有没有物理内存的知识.这是由内核和MMU隐藏的.

我不确定你的意思是同一个"位范围".如果你有一个32位的地址空间,它将覆盖整个32位空间,无论你有多少物理内存.同样适用于64位.