让我们有一个 int 类型的数组:-
int arr[5];
现在,
if arr[0] is at address 100 then
Why do we have;
arr[1] at address 102 ,
arr[2] at address 104 and so on.
代替
arr[1] at address 101 ,
arr[2] at address 102 and so on.
是不是因为一个整数占用2个字节?
每个内存块是否有 1 字节容量(无论是 32 位处理器还是 64 位处理器)?
最佳答案
您的第一个示例与 16 位 ints
一致。
关于你的第二个例子 (&arr[0]==100
, &arr[1]==101
, &arr[2]==103
),这不可能是一个有效的布局,因为连续元素之间的距离在第一对和第二对之间是不同的。
关于c++ - 内存寻址与数组的混淆,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8787065/