世界の隅の開発室

 

◎  スポンサーサイト 

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

◎  変数の説明に「箱」を用いるのは誤解のもと? 

今年高専三年になる俺は、一年生、二年生の後輩や、同輩によくプログラミングの指導をしています。

その過程で気が付いたのですが、彼ら、本当にポインタが分かってない。
ポインタはC言語のキモとも言うべき機能ですが...

関節参照は問題なく扱えるようですが、なんというか、数学の公式に代入するような作業感が漂っているのです。使い方は知っているが、本質的なことへの理解は乏しい感じ。

その弊害が露骨に出るのが、配列のポインタ表現。
配列は特殊なデータ型ではなく、単なるメモリ上で連続な変数群であることを、全く理解出来ないようです。


ここで、彼らの一つの共通点として、メモリとデータの関連性が分かってないということが伺えます。
その原因として、変数の説明において「箱」を用いていたことに問題がある気がします。

箱を用いての説明はメジャーで、実際に俺が受けた授業でも箱が用いられました。
なるほど、最初聞いたときは分かりやすい!と思いましたとも。
非常に変数の動きがイメージし易かったですから。

...ですが、確かにイメージはし易くても、それは「イメージ」でしかなく、メモリ上でのデータのやり取りとは無関係なものです。
「箱」の理解のまま、急にアドレスという概念を押し付けられることが、ポインタへの混乱を招いてしまっているのではないでしょうか。



ではどうすればいいのでしょうか。

ここからは俺の持論になります。気に障る方はプラウザバックしてください。



俺が変数を教えるときは、まず最初に、主記憶装置(メモリ)と、2進数への理解があるかを確認します。
そして、変数の宣言は、いきなりメモリへの領域確保という概念から説明してしまいます。
当然ハテナマークが返って来るわけですが、ここで、領域確保を土地購入に例えます。

メモリという広大な土地の一部を購入し、自由に扱う。
土地という例えを用いると、メモリ上の連続性と、データの扱われ方がイメージし易いと思うのです。
箱はあくまで独立的なものですが、「土地」を購入し、購入した「土地」を「変数用」として扱う。
この説明で、箱では発生してしまう誤解を解決できるのではないでしょうか。

そして、さらにそこから配列変数の説明として、土地の利用法を住宅街やマンションで例えれば
今いる場所から何個目の部屋、何個目の家という、ポインタによる相対参照への理解も簡単になります。
*(p+n)※pはポインタ変数 のことですね。



この説明が最優とは全く思っておりませんが
ポインタの説明で困ってる方、少し指導方法を変えてみては如何でしょうか。



ではまた次回。
スポンサーサイト

COMMENT FORM

  • URL:
  • comment:
  • password:

べ……別にコメントのタイトルを教えて欲しいわけじゃないんだからね!

ふむ、頑張ってください
私もJava頑張ります
嫌になってきましたがwww

2013/09/12(木) |URL|anerasu [edit]

http://www.mhdylc4748.com

http://www.bygjylc8995.com ケイトスペード 公式

2014/09/22(月) |URL|コーチ アウトレット [edit]

http://www.pdlylc490.com

http://www.jyylc7933.com モノグラム

2014/09/23(火) |URL|バリー [edit]

Trackback

トラックバックURL:http://joints.blog111.fc2.com/tb.php/3-04aad1c4


back to TOP

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。