c++ - 内存寻址与数组的混淆

标签 c++ c storage memory-address

让我们有一个 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/

相关文章:

c - system() 输出到 char*

Python 和 C : Is it possible to mix Ctypes and Swig together?

android - Xamarin.Forms 应用需要写入共享的本地存储位置

c++ - std::map 是否从其 const 引用创建对象的新非 const 拷贝

c++ - Visual Studio 关于多个类的荒谬错误

c - 从 bmp 文件中读取字节

SQL删除表时无法取回存储空间

Azure 存档操作和定价

C++ 错误 C2102 : '&' requires l-value

c++ - 需要使用 gsl LU 分解获取方阵逆矩阵的示例代码