gpt4 book ai didi

c - 现代 x64 系统上的指针内部是什么?

转载 作者:行者123 更新时间:2023-12-02 16:12:04 25 4
gpt4 key购买 nike

例如这段代码:

int x = 75;
int *p = &x;

printf("%llx\n",p);

写入 64 位数字。我想问的是,这个数字到底是多少?是的,这是一个地址。

但它是存储值 75 的虚拟内存中的绝对地址吗?或者它是否可能偏离某个页面标记,或者偏离程序内存块的“起点”?

如果重要的话,我问的是在典型的 x64 英特尔芯片上的 64 位 Windows 10。

最佳答案

是的,就是你程序的virtual address space中的绝对地址.

这不是偏移量。

在 16 位 Windows(30 年前很常见)中,segmented memory model ,其中指针被分段,由一个16位的段指针和一个16位的偏移量组成(共32位)。

但是,32 位和 64 位 Windows 都使用 flat memory model ,它使用绝对地址。

关于c - 现代 x64 系统上的指针内部是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67730438/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com