在32位机器中,如果复制了一个int p,它将复制4个字节的信息,这些信息将分别在0xbeefbeef,0xbeefbef0,0.0beefbef1,0xbeefbef2处理。
这与64位相同吗?或者它在一个地址存储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位长。