如何确定指针指向的地址? (理论)
how to determine the address pointed to by a pointer? (theory)
我有这个问题:
let a double pointer "ptr" point to this address: "0xb786ff12".
if I write the following line: ptr + 4. say the final address to which ptr points to.
我的尝试:
因为ptr是一个32位的双精度指针,它有8个字节;因此,我必须使用十六进制进行计数,如下所示:
(从 12 开始)
13、14、15、16、17、18、19、1a(第一组 8 个字节)
1b、1c、1d、1e、1f、21、22、23(第二组 8 个字节)
24、25、26、27、28、29、2a、2b,(第三组 8 个字节)
2c, 2d, 2e, 2f, 31, 32, 33, 34(第四组 8 个字节)
但是不正确,因为最后的结果一定是0xb786ff32,32,不是34。
我知道这很明显,但我个人觉得有点棘手。
你数错了!见下文:
13、14、15、16、17、18、19、1a(第一组 8 个字节)
1b、1c、1d、1e、1f、20、21、22(第二组 8 个字节)
23、24、25、26、27、28、29、2a,(第三组 8 个字节)
2b, 2c, 2d, 2e, 2f, 30, 31, 32(第四组8字节)
#f 后跟 (#+1)0,而不是 (#+1)1,如您的顺序(1f 后跟 21,2f 后跟 31)
我有这个问题:
let a double pointer "ptr" point to this address: "0xb786ff12". if I write the following line: ptr + 4. say the final address to which ptr points to.
我的尝试: 因为ptr是一个32位的双精度指针,它有8个字节;因此,我必须使用十六进制进行计数,如下所示: (从 12 开始)
13、14、15、16、17、18、19、1a(第一组 8 个字节)
1b、1c、1d、1e、1f、21、22、23(第二组 8 个字节)
24、25、26、27、28、29、2a、2b,(第三组 8 个字节)
2c, 2d, 2e, 2f, 31, 32, 33, 34(第四组 8 个字节)
但是不正确,因为最后的结果一定是0xb786ff32,32,不是34。
我知道这很明显,但我个人觉得有点棘手。
你数错了!见下文:
13、14、15、16、17、18、19、1a(第一组 8 个字节)
1b、1c、1d、1e、1f、20、21、22(第二组 8 个字节)
23、24、25、26、27、28、29、2a,(第三组 8 个字节)
2b, 2c, 2d, 2e, 2f, 30, 31, 32(第四组8字节)
#f 后跟 (#+1)0,而不是 (#+1)1,如您的顺序(1f 后跟 21,2f 后跟 31)