指向int
的指针(int*
)存储整数第一个字节的地址。 编译器知道int
的大小,因此它只需要知道它从哪里开始。 如何解释int
的字节取决于计算机的字节顺序,但这并不能改变指针只存储起始地址的事实(编译器也知道字节顺序)。
这4个int
字节不是存储在随机位置--它们是连续的。 所以存储对象第一个字节的引用(地址)就足够了。
取决于建筑结构。 在大端结构(M68K,IBM z系列)上,它通常是最高有效字节的地址。 在小端结构(x86)上,它通常是最低有效字节的地址:
A A+1 A+2 A+3 big-endian
+–––+–––+–––+–––+
|msb| | |lsb|
+–––+–––+–––+–––+
A+3 A+2 A+1 A little-endian
我可能会省略其他奇怪的寻址方案。
但基本上,它是基础架构认为单词的“第一个”字节的任何内容。