ポインタの分からないところ 追記

友人より、「ポインタの宣言

  T *ptr;

があるときに、次の2式

  ptr = ptr + 1;

  ptr = (T *)( (int)ptr + sizeof(T) );

が同じになるよ」とアドバイスをもらったので、とりあえず確認するためのファイルを作ってみた。

 

それがこんな感じ。

f:id:lightology:20170306004347p:plain

 

もともとほしい結果は、

  #define DEBUG 0

とした時のもので、アドバイスを反映させてみたのが、画像にあるとおりの

  #define DEBUG 1

としてるやつ。

 

確かに、同じ結果になる!

 

なるほど。

ポインタをインクリメントするときは、ポインタに格納した番地をType型のサイズ分1増加する、ということを裏でやってるってわけか。

 

早とちりしてなければ、これで良さげ。