前回までやってきたポインタの理解を深めるため、 またまたポインタのお話です。
またかよ〜
はい、「また」です。 でもC言語とポインタは切っても切れない関係でして、 ポインタを理解しないことにはC言語でプログラムが組めないと言ってもいいでしょう。 なので、がんばって理解しましょう。前章では整数の配列でポインターを使いましたが、 この章では文字の配列、すなわち文字列でポインターを使ってみましょう。
17章で文字列の大原則を説明しましたが、 忘れてしまった人もいるかもしれないので、もう一度書きましょう。NULL文字があって初めて文字列とみなされるですね。
これを頭において、次のプログラムを見てみましょう。
ん???なんかおかしくない?
と思った方はなかなか鋭いです。 「printf」関数に教えてるのは、 「str」(文字列そのもの)と「pstr」(文字列のポインタ)の2種類なのに、 結果が同じなのは少しおかしい気もします。
が、これでいいのです。全然問題ありません。
実は 配列で宣言した変数は配列名そのものには自身の先頭アドレス が格納されているというルールがあるのです。
つまり、「printf」関数に教えていたのは、 文字列そのものではなく文字列のポインター だったんですね〜。ほんとかよ〜?
という人のために、次のようなプログラムを作ってみました。
ほらね。どっちも同じアドレスを表示したでしょ。(^^)V今回はこんなところでおしまいです。 配列で宣言した変数そのものには先頭アドレスが入るということは、 これから先、結構見落としてしまうと思います。 自分でプログラムを組むときは、自分で変数を決めていくので問題はないのですが、 他人のプログラムを読むときは私もたまに勘違いしてしまうことがあります。(^^;;
一応、基本は今回までで終了とします(ちょうど20回だしね)。 次回からはいよいよ、C言語らしいプログラムを作っていきましょう。 ってゆってもそれ程難しいことはしま(できま)せんので、 そんなに堅くならなくても(誰もなってないって?)いいですよ。
C言語のメニューに戻る