我正在学习C指针。我将双指针递增1,如下所示:
之前 - > ptr_double =0x0128
然后我将它递增1,然后存储在ptr_double中的地址增加8个字节,即0x0128
+ 8,得到0x0130
。
我无法理解0x0130
是如何算术的。
我知道这可能是一个基本问题,但我很难理解这一点。有人可以向我解释一下吗?
答案 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
。