在以下代码中,
#include<stdio.h>
int main()
{
short a[2]={5,10};
short *p=&a[1];
short *dp=&p;
printf("%p\n",p);
printf("%p\n",p+1);
printf("%p\n",dp);
printf("%p\n",dp+1);
}
现在我得到的输出是: 0xbfb45e0a
0xbfb45e0c
0xbfb45e04
0xbfb45e06
这里我理解了 p 和 p+1,但是当我们做 dp+1 时,由于 dp 指向指向 short 的指针,并且由于指向 short 的指针大小为 4 个字节,所以 dp+1 应该增加 4 个单位,但它
正在增加只有2。
请解释原因。