次のコードでは、
#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);
}
今私が得た出力は次の
とおり
です
。
ここで p と p+1 を理解しましたが、dp+1 を実行すると、dp は short へのポインターを指し、short へのポインターのサイズは 4 バイトであるため、dp+1 は 4 単位増加するはずですが、
増加しています。 2だけ
。理由を教えてください。