ポインタを堀り下げるその2
ポインタを堀り下げるその1 - Shammerismの続き。堀り下げるとか言ってもわかっている人からすればハア?何そのアタリマエのこと・・・みたいな感じなんだろうなぁ。まあ、そんなことはどうでもいい。自分がわかるようになることが重要なんだから。
ポインタに値を代入することについて確認。以下のように宣言された場合、
int *pointer; pointer = 10;
コンパイルすると以下のようになる。
warning: assignment makes pointer from integer without a cast [enabled by default]
以下のようにすれば値を代入できる。
int *pointer; *pointer = 10;
この例と、前回の例から以下のことがわかる。
- ポインタ変数それ自体はメモリアドレスを代入するもの
- ポインタ変数それ自体にメモリアドレス以外の値(整数とか)を代入しようとすると型が合わない警告が出る
- ポインタの参照先に何かの値を代入したい場合は*を付けて代入すべし
頭で考えると混乱しやすいが、、、ここはガッチリ抑えないと後でさらに混乱することになりそうだ。なんか前もやった気がするけれど。