やっぱり変数は箱(のようなもの)で説明するのがいいんじゃなかろうか

Posted by
ぴろり
Posted at
2009/01/17 23:52
Trackbacks
関連記事 (0)
Post Comment
コメントできます
Category
電算室 カテゴリ

ヒビノアワ: 変数についてどう説明するのがいいのだろうか
プログラミングをまったく知らない人に、どうやって説明するのかというプロセスに興味があるのですね。で、読んでいるとたいていの本で変数の説明として「箱」というメタファを出してくるのです。変数は箱のようなもので、Aという箱に数値を入れてうんぬん......。

 私はセオリー通り(?)に変数を箱で覚えましたねぇ。元記事ではその後、話がポインタの話題になっているのですが、ここでは少し寄り道してみます。

このエントリーをはてなブックマークに追加  

変数の型

 「A」と書かれた箱があって、これには「123 と書かれたメモ」を放り込むことができます。これが変数 Aです。他にも「B」と書かれたコップと「C」と書かれた紙袋があって、それぞれに「200ccのミルク」と「300gの小麦粉」を入れることができます。これで変数 B と変数 C ができました。箱にはミルクを入れることはできませんし、紙袋にメモを放り込むこともできません*1。コップに入った「200ccのミルク」と「100ccのミルク」を足せますが、「200ccのミルク」と「123 と書かれたメモ」は足せません。この入れ物の違いが変数の型として説明できます。

変数のポインタ

 次に本題のポインタです。「A」と書かれた箱はボブの机の上にあって、「B」と書かれたコップはメアリーが持っていて、「C」と書かれた紙袋は台所にあります。このように、どの変数がどの場所に在るのか、という情報をポインタとして説明できます。
 ここで少し話を飛躍して、話を現実のメモリ空間に近づけてみます。「A」と書かれた箱はコインロッカーの1900番に入っています。この「コインロッカーの1900番」というのがポインタの値です。そしてこの「1900番」という値の書かれたメモを箱に入れて、コインロッカーの2200番に入れておきます。これが「Aへのポインタ」です。2200番のロッカーを開けると、変数「A」へのポインタ「1900番」と書かれた紙が入っています。そして、1900番のロッカーを開けると、ようやく変数「A」の実体である「123」を得ることができるというわけです。
 ややこしい「変数Aのポインタへのポインタ」も同じ考え方でいけます。上の例で、更に「2200番」と書かれたメモを2300番のロッカーに入れてしまえばよいのです。そして、2300番→2200番→1900番と辿ることで変数Aを得ることができます。

 …と、こんな説明でどうでしょうか?

このエントリーをはてなブックマークに追加  

  1. *1 現実的に可能だとしても

この記事のアーカイブ

全ての記事 »
2009年
全てのカテゴリ »
電算室
全てのタグ »

関連記事/トラックバック

関連記事/トラックバックはまだありません

この記事にトラックバックを送るには?

コメントを投稿する

 
 (必須, 匿名可, 公開, トリップが使えます)
 (必須, 匿名可, 非公開, Gravatar に対応しています)
 (必須)
スパム コメント防止のため「投稿確認」欄に ランダムな数字 CAPTCHAについて を入力してから送信してください。お手数ですがご協力のほど宜しくお願いいたします。