【发布时间】:2020-04-24 16:26:54
【问题描述】:
我刚开始学习 C,我了解到内存的每个字节都有一个地址。
我的问题是,占用 2 个字节内存的整数的地址是什么?
如果我们有一些需要 9 位内存的数据怎么办?我认为内存是一长块大小为 1 字节的带有地址的盒子。 9 位占据一个盒子和下一个盒子的 1/9,盒子剩下的 8/9 怎么办?
【问题讨论】:
-
仅供参考,一个字节中有 8 位。
-
如果你说的是字面整数,没有地址,它们是指令本身代码的一部分
-
@ChristopherMoore 这并不完全正确,它只是最常见的字节大小
-
如果你有一个 9 位的位域并且你有一个 8 位的字节存储器,那么你的位域将使用 2 个字节。可能会使用其他 7 位,这一切都取决于上下文以及编译器用于减小大小等的选项。无论如何,数据的地址是其第一个字节的地址,其可以是更高或更低的字节,具体取决于大/小印度人
-
对您的问题的简短回答是,任何特定数据的地址都是数据在内存中开始的基地址。分配的“盒子”的数量取决于平台和正在创建的数据的大小。在您的示例中,为 9 位。系统将分配至少保存 2 个字节所需的内存。例如,我在一个分配了最少 32 位内存块的 Analog Devices DSP 上工作。
char ch;将被分配 32 位。int i;也将获得 32 位。
标签: c computer-science