为什么一个内存地址只包含16个字节的数据?

为什么一个内存地址只包含16个字节的数据?
0x8048384 <main+16>: 0x00fc45c7     0x83000000     0x7e09fc7d     0xc713eb02
0x8048394 <main+32>: 0x84842404     0x01e80804     0x8dffffff     0x00fffc45

那么每个内存地址包含 16 个字节的数据?4x4 = 16。因此 4 个字节 = 0x00fc45c7

我对吗?

答案1

不是的。内存中的特定地址通常指向字节的内存。但是,此处的显示内容显示的是从0x8048384到的每个内存字节0x80483A4- 这是 32 个字节的内存,分为 2 行,每行 4 个 4 字节值。

如果您仔细查看左侧,您会发现行与行之间的地址不是以 1 为增量,而是以 16: 84->94为增量(以 16 为基数),这表示每行显示 16 个字节的内存。这通常比每行显示 1 个字节更方便,并且这些 16 字节行进一步细分为 4 字节组,因为使用对齐的 32 位数字很常见,每个 4 字节组代表这些数字。这使得更容易直观地处理信息,而无需借助其他工具进行解释。

相关内容