看c primer plus指针和数组那章,有个不懂的问题 .

图片描述
图片描述
想知道为什么double下面的数组地址是:
0x0064fd28
0x0064fd30
0x0064fd38
0x0064fd40

指针+1代表的是对该指针增加一个存储单元,存储单元的大小是由类型不同而不同的,double类型的使用8个字节,那数组地址应该是:
0x0064fd28
0x0064fd36
0x0064fd44
0x0064fd52

阅读 3.9k
2 个回答

上面显示的地址是 16进制
* 0x0064fd280x0064fd30 之间还有
* 0x0064fd29
* 0x0064fd2a
................
* 0x0064fd2f

所以,是相差了 8 个字节.

16进制,8+8=16,向上进位1,指针+1,地址从0x0064fd28到0x0064fd30

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进