我可以使用指针访问什么粒度?

时间:2019-01-19 19:14:54

标签: pointers memory

如果我要为通用地址分配一个指针“ p1”,将该地址递增最小可能的数量,然后将该递增的地址分配给指针“ p2”,则地址之间将有多少内存位这两个指针?答案是否特定于CPU?谢谢

1 个答案:

答案 0 :(得分:0)

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

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

如果您的指针指向另一种实体(int,浮点数,结构等),则增加指针将使您指向下一个实体。例如,如果p是指向int的指针(4个字节),则p ++将增加int的p大小(4)。

如果不熟悉这些概念,则为Google“指针算术”。