double *p;
p = 0;
printf("元のアドレス = %x\n", p);
printf("1を加えた後のアドレス = %x\n", ++p);
printf("1を加えた後のアドレス = %x\n", ++p);
printf("1を加えた後のアドレス = %x\n", ++p);

pのアドレスを0で初期化してアドレスの変化を見たのですが、出力結果が

元のアドレス = 0
1を加えた後のアドレス = 8
1を加えた後のアドレス = 10
1を加えた後のアドレス = 18

のようになりました。double型のサイズは8なのでアドレスが8ずつ増えたりすればまだ理解できるのですが、
なぜ+8→+2→+8→+2・・・のような不規則な変化をするのでしょうか?