[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[jfriends] Re: ポインターと参照




前橋です。

天野さん:
>step1 int 型 ポインタにはアドレスが入っている
>step2 ポインタをインクリメントする
>step3 ポインタが int 分だけ進む
>step4 でも、 int 型 ポインタにはアドレスしか入っていない
>
>なら、何故 int 分だけ進めるのか、int 分であるという情報を何処から仕入れ
>ているのか?

int型へポインタですから、int分だけ進めます。その情報は、コン
パイル時に決定できます。

ポインタ演算というのは、C言語の開発時に、配列アクセスの最適
化を *手抜きするため* に作られた機能である、と私は認識してい
ます。

>このアドレスからこのアドレスに入っているポインタは、全部 int とか決められ
>ているのだろうか?

例えば、

  char buf[1000];
  char *char_p;
  int  *int_p;

  char_p = buf;
  int_p = (int*)char_p;

  int_p++;

とすると、最後のint_p++では、ポインタはsizeof(int)分だけ進み
ます。

------------------------------------------------------------
  前橋 和弥                             maebashi@xxxxxxxxxx
  中部ソフトエンジニアリング(株)
    〒450 名古屋市中村区名駅4-10-25(名駅IMAIビル 5F)
    Tel:(052)583-4511(代) 内線 252 Fax:(052)583-4566
------------------------------------------------------------