我有一个令人费解的问题(至少对我来说)
假设我声明了一个整数数组:
int arr[3];
从概念上讲,内存中发生的情况是,在编译时,分配了 12 个字节来存储 3 个连续的整数,对吧?(这里有一个插图)
根据图示,示例地址
arr[0]是1000,
arr[1]是1004, 并且
arr[2]是1008。
我的问题是:
arr[0]如果我输出和的地址之间的差异arr[1]:
std::cout << &arr[1] - &arr[0] << std::endl;
而不是得到4,
我出乎意料地得到1。
谁能解释为什么会导致该输出?
PS:在我的电脑上,一个 int 是 4 个字节。