2013年1月4日金曜日

プログラミングメモ
■Pointer編

char           x[]="Test";
char     *p_x;
char **pp_x;

  p_x =   &x[0];//または p_x = x;
pp_x = &p_x;

とした場合、

    &x:     xのアドレス
     x:     xの内容"Test"

   &p_x: p_xのアドレス
    p_x:     xのアドレス(p_xの内容)
   *p_x:     xの内容"Test"

&pp_x:pp_xのアドレス
  pp_x:  p_xのアドレス
 *pp_x:      xのアドレス(p_xの内容)
**pp_x:      xの内容"Test"
//■■■■■■■■■■■■■■■■■■
[**pp_x:Test(xの内容)]は
[*pp_x:xのアドレス]と[p_x:xのアドレス(p_xの内容)]より
 *pp_x:p_x すなわち **pp_x:*p_x であり、[*p_x:xの内容"Test"]であるから
[**pp_x:   xの内容"Test"]となる。


ポインタとか
ポインタのポインタとか
訳が分らなかったのでまとめてみました。

ポインタもダブルポインタもトリプルポインタも実はそんなに難しくないはず……です。

0 件のコメント:

コメントを投稿