第18章

第18章 ポインタの基礎の基礎

C言語とポインタは切っても切れない関係にあります。 逆にいえばポインタさえ理解してしまえば脱初心者と言ってもいいでしょう。(ホントか?) ということで、以前やったポインタのお話を ほんのちょっとだけレベルアップしてみようと思います。 次のプログラムを見てください。



実行すると・・・



「*」ってなんじゃー!!
これは間接演算子と言って、 「*」をとった変数に格納されているアドレスの値をとります。
さっぱりわからん!!
う〜〜ん、これは言葉で説明しようとするとすごく難しいので、 さっきのプログラムをちょっと改造してみましょう。







まず i を整数を扱う変数として宣言、 そして j を整数を扱う変数へのポインタとして宣言する。 で、i に10を代入する。 そして変数 i 自体と i のアドレス( & i )を表示する。 ここまではわかりますよね?
で次に、変数 j に変数 i のアドレスを代入する。 そのため、ただ単に変数 j を出力すると &i と同じ結果がえられます。 じゃー、変数 j のアドレスは?となると思いますので(?)、 一応 &j として出力します。 最後にポインタ j が指しているアドレスの値 *j を表示します。
なんとなくわかったような・・・
では、さらにわかりやすいように図を書いてみます。



どうでしょう? 少しはイメージがつかめたでしょうか? まー、みんなポインタでつまづくものです。 (もちろん私もつまづきました) 何回も使っているうちに理解できるものなのです。

C言語のメニューに戻る

TOPに戻る