8个8位字符的数组图
Diagram of array of 8 8-bit characters
下面是一个由8个8位(1字节)字符组成的数组所使用的内存示意图。为一个包含8个32位整数和8个64位双精度的数组做一个类似的图。
Byte (Character) 1 2 3 4 5 6 7 8
Index 0 1 2 3 4 5 6 7
Address n n+1 n+2 n+3 n+4 n+5 n+6 n+7
你们知道这意味着什么吗?
32位整数的字节是否为0001?它的地址是什么?
我认为这是一个练习,旨在让您考虑数组下标和实际内存地址之间的区别。索引1处的整数,即myarray[1]
,将在地址n+4
上找到,因为32位整数的宽度为4字节。
那么32位的情况可能是这样的?
32-Bit Integer 1 2 3 4 5 6 7 8
Index 0 1 2 3 4 5 6 7
Address n n+4 n+8 n+12 n+16 n+20 n+24 n+28
我可以试一试。我相信它只演示了两件事:索引是如何将数据作为数组寻址,而地址是内存中的任意地址。
对于32位的情况(假设小端序),您将拥有
Word 1 | 2
Index 0 | 1
Address n+0 n+1 n+2 n+3 | n+4 n+5 n+6 n+7
前4个地址字节是小端序32位的第一个字。第二个4个地址字节是下一个32位字。只是继续。
相关文章:
- 指向指向字符数组的指针数组的指针
- 比较字符数组
- 如何使用Crypto++并为RSA返回可打印的字节/字符数组
- 使用无符号字符数组有效存储内存
- 按字符值访问int数组
- 错误:字符数组的初始值设定项太多
- 对字符数组中的元素执行逐位操作
- C++,在int数组中输入字符串或字符会输出0,而不是ascii或error
- C++ 无法在字符数组中使用 for 循环打印字母模式
- 如何在 C++ 中从文件中读取字符数组(带有一些空格)
- 移动二维数组中的字符
- C++ 传递二维字符数组
- 无法在 C++ 中输入字符数组
- C++ 带结构的数组字符
- 数组字符包含量超出预期
- 读取文件并添加到数组字符
- 如何在Qt中更改或替换数组字符
- 为什么编译器不在参数中传递数组字符 *arr[] 的大小?
- 井字棋数组字符错误
- 分割数组字符