第19章
第19章 ポインタの基礎
では今回は基礎ということでもう少し骨のあることをやってみたいと思います。
ずばり、今回は
配列とポインタの関係
を暴露(?)してみます。
配列について忘れたひとはここをちょっと読み返してみましょう。
さてでは、とりあえずいつものように下のプログラムを見てください。

そして結果がこれ。

今までとは段違いに難しいと思います(私はそうだった・・・)。
まず配列の宣言と初期化はこんな書き方もあります。
"[ ]"の中に何も書かなければ、自動的に配列を作ってくれます。
この場合でいうと j[5] となりますね。( j[6]でもいいんですけどね )
そして 整数型を扱うポインタ型 jp を宣言しています。
1つ目の forループは別にいいでしょう。以前と同じですもんね。
今回の重要なところは次の for ループです。
jp = &j[i]
これで j[i]のポインタを 変数jp に格納することにより、
間接演算子 "*" を使って j[i] を表す事ができるようになりますね。
これがわかったら次にこんなのはどうでしょう?

一応結果がこれ。

すんなりこれがわかったらあなたはすごい!!(と思うのは私だけ?)
普通のひとは jp++ が疑問に感じるはずです。
"++"は 「1」加算すると以前言っていましたが、
ポインタに限っては違います。
ポインタの場合は扱う型(int とか char)の大きさ分だけ加えられます。
今回の例だと、int型を扱うポインタですので4バイトずつ加えられます。
char型の場合は1バイトずつ、short型なら2バイトずつになります。
もっとわかりやすく説明しろ
では、また図を書いてみましょう。(これが結構時間がかかるんだな・・・ボソ)

これでなんとなくつかんでくれたかな?
C言語のメニューに戻る
TOPに戻る