: C言語のポインタを説明するよ。

1枚の紙が入った封筒を10組用意してください。
紙の表には何か簡単な言葉を
裏には0から9までの数字をランダムで書いてください。
そして、封筒に0から9までの数字を書いてください。
では1番の封筒をとってきてください。中身を読んで下さい。
次にその紙の裏の番号の封筒をとってきて
封筒をとってきたら、中身を読んでください。

この紙がメモリーです。
番号がアドレスです。

メモリーの中にメッセージではなく番号を入れて、次の封筒を指し示す。これがポインタです。

つまり メモリー=紙には
内容を書くこともできますし、住所(宛先)を書くこともできますね?

この内容を書かれた紙のことを狭義の意味でメモリー
次の封筒の番号=住所(宛先)を書いた紙のことをポインタと呼んでいます。

これが C言語で一番理解の難しいポインタです。

なぜこんなことをするのだ!という人もいるでしょう。

住所に郵便番号をつけるようなものです。

ソート(並べ替え)にどうして、ポインタ(番地)をつかうのか?
100kgの荷物を10個用意してください
それに番号を0-9までふってください
並べ替えるのに、いちいち現物を使っていたら大変じゃないですか?
番号札を別途つくって、番号札を並べ替えると それで良い時は楽じゃない?

家の模様替えの時に、いちいち、現物を動かして試行錯誤しますか?
紙でミニチュアを作って、がんばりますよね?

この実物=メモリ・オブジェクト
紙のミニチュア=ポインタ です。

なぜ、ポインタを使うのか?すべてはこの 実物を現実に動かすと重たいから大変
だから、番号札で並べ替えをして動かしたことにしよう。

というのが プログラムにおけるポインタ(指標) 基本的な考え方です。
これがわからないと C言語 プログラムのことは 分からないも同然。

Leave a Reply

メールアドレスが公開されることはありません。

注意(NOTICE)

コメントの投稿は反映までに時間がかかる場合があります。 Post Comments may take some minutes to publish.