64位架构的内存地址仍然保持1个字节

时间:2017-04-25 03:14:09

标签: c memory 32bit-64bit

在32位机器中,如果复制了一个int p,它将复制4个字节的信息,这些信息将分别在0xbeefbeef,0xbeefbef0,0.0beefbef1,0xbeefbef2处理。

这与64位相同吗?或者它在一个地址存储2个字节?

2 个答案:

答案 0 :(得分:1)

这取决于架构。大多数"正常" 64位系统(例如arm64,x86_64等)存储器是" byte addressed,"所以每个内存地址都指一个字节(因此它与32位示例相同)。

有些系统字节寻址,这可以包括64位架构。例如,DSP是系统的典型示例,其中char可以是32位(或更多),而单个字节(或更确切地说,八位字节)是不可寻址的。

答案 1 :(得分:0)

在amd64架构(也称为x86_64和x64,这是最常见的64位架构)上,每个可寻址单元仍然引用一个字节的内存(8位)。

此外,int通常仍包含4个字节的内存(32位),但 可能因编译器而异(因为它也适用于32位系统)

指针的大小会有所不同。在32位系统上,指针通常为32位,但在64位系统上为64位(8字节)。这将允许计算机访问更多字节的内存,但每个字节仍然是8位长。