C言語 ポインタ
よくポインタの概念がわからんけん、教えてとか言われますが、たぶん難しく考えすぎなのだと思います。わからんかったら、僕のところに来てください。暇だったら相手します。
さて、ポインタですが、名前のとおり、ポイントを指しているのです。
int a;
という変数があったとします。この変数はシステム上のどこかに配置されます。配置される空間をアドレスといいます。住所ですね。xx県xx市みたいな。
int *p;
というポインタがあったとします。宣言された時点ではポインタはどこも指していないか、いい加減なところを指しているかだと思うので、宣言するだけではあまり意味がありません。
任意のアドレスを指して初めて意味があります。
p = &a; /* &aは変数aのアドレスを意味する */
これで、pにaのアドレスを指させました。
*pでアドレスの指定先の中身をいじれます。例えば、
*p = 100;
とすると a の値は100になっていると思います。
間違えて
p = 100;
とすると、ポインタはアドレス100を指してしまうので、注意してください。
人間やればできるのです。失敗してもいいのです。一番いけないのは何もしなくなることです。
いっしょに前を向いて進みましょう。