首页 > 解决方案 > 我可以使用指针以什么粒度访问主内存?

问题描述

如果我将一个指针“p1”分配给一个通用地址,将该地址增加尽可能小的数量,并将该增加的地址分配给指针“p2”,那么两个指针的地址之间将有多少位内存? 答案是特定于 CPU 的吗?谢谢

标签: pointersmemory

解决方案


任何计算机中的地址都是字节地址。在考虑内存访问时,不可能有更小的粒度。

您可以通过递增指针来完全访问内存中的连续字节,但您必须有一个指向字节的指针(例如 C 中的 char 或 unsigned char)。

如果您的指针指向另一种实体(ints、floats、structs 等),则递增指针将引导您到下一个实体。例如,ap 是指向 int(4 字节)的指针,p++ 将增加 int 的 p 大小(4)。

如果不熟悉这些概念,请谷歌“指针算术”。


推荐阅读