地址相减的问题?

2019-10-15 03:03发布

int a[3] = {0,1,2}

int *p,*q;

p = a

q  = &a[2];

请问一下,q-p的值为什么等于2呢?

printf(" %#X",p)    //p= 0x402000
printf(" %#X",q)    //q= 0x402008

两个地址相减的结果是不是为空间的个数你呢?
(0x402008 - 0x402000) / int  = 8/4 = 2

求大神解释一下,谢谢了!

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。