В следующем коде,
#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.
Пожалуйста, объясните причину.