这个十六进制算术如何工作?

时间:2016-09-18 13:24:14

标签: c pointers hex

我正在学习C指针。我将双指针递增1,如下所示:

之前 - > ptr_double =0x0128

然后我将它递增1,然后存储在ptr_double中的地址增加8个字节,即0x0128 + 8,得到0x0130

我无法理解0x0130是如何算术的。

我知道这可能是一个基本问题,但我很难理解这一点。有人可以向我解释一下吗?

1 个答案:

答案 0 :(得分:2)

我假设您有一个指向double的指针,如double* ptr_double;,其值为0x128,然后您将其递增++ptr_double;(这会使指针跳转 sizeof(double),在本例中为8)。地址是十六进制(基数为16),所以

0x128 + 0x8 = 0x130

请注意,十六进制属于0,1,...,9,A,B,C,D,E,F范围,因此0x8 + 0x8 = 10