参考ページ→ポインタ操作

ポインタ変数 補足

情報を記憶したい場合、そのための変数を宣言で用意します。
例えば、123 の整数を記憶したい場合、例えば v の名前で次のように用意します。

int v;

これで、準備ができました。v = 123の式を実行させれば、記憶できます。


ポインタ変数で記憶する場合はどうでしょうか?、
例えば p の名前で次のように用意します。

int *p;

*p = 123の式を実行させると、実行エラーが起きます。
これは、pのポインタが指し示す記憶域を、123に設定する処理で、これを正しく実行するためには、 あらかじめ、pに変更可能な記憶域を指し示すように設定しておかなけれなりません。
つまり、ポインタ変数は正しい記憶域を指してなければ使えないというわけです。

よって、別途に記憶域が必要です。例えば v の名前で次のように用意します。

int v;
そして、ポインタ変数をp の名前で次のように用意します。
int *p;
そして、pのポインタが指し示す記憶域を設定します。たとえば、変数 v のアドレスです。
p = &v
&のアドレス演算子で得られた 変数 v のアドレスを設定しています。
これで、準備ができました。次のようにpを使った123の記憶ができます。

*p = 123
これは、pを介してvに123を設定しています。