« フレーム表示遅延が操作遅延の要因であるという謂れなき罪 | トップページ | C言語のお勉強 ポインタ編 第1回 »

2012年6月30日 (土)

ポインタの理解を妨げるもの 第4回

1年ほど前に、「ポインタは変数」という誤解の刷り込みがポインタの理解を妨げる原因だということを書いたのだが、実のところ、いまいち本質を表していないなあと思いながら書いていた。

あれからずいぶん経つが、本質を理解できた気がするので投稿しておく。

ポインタ型の変数宣言を見せられて「これがポインタだ」と説明されたとき、「アドレスを格納する変数を宣言している」と理解すべきところを、「ポインタという新しいものを宣言している」と理解してしまうとポインタは異次元レベルで難解なものになってしまう。

刷り込まれるのは「ポインタは変数のようで変数ではない」という誤解だ。「ポインタは変数(のように宣言する)」という誤解と「ポインタは変数ではない」という誤解が重なる。

「変数のように宣言したものがポインタ」という思い込みは、代入しているものや引数として渡されるものもまた「ポインタ」だという考えを否定する。「ポインタは変数ではない」という思い込みは、代入しているものや引数として渡されるものが格納されている値だという考えを否定する。すると名前も正体も分からないものを扱うことになる。

そうなってしまったら訳が分からないのは当然だし、抜け出すのも難しい。

|

« フレーム表示遅延が操作遅延の要因であるという謂れなき罪 | トップページ | C言語のお勉強 ポインタ編 第1回 »

C/C++」カテゴリの記事

日記・コラム・つぶやき」カテゴリの記事

コメント

コメントを書く



(ウェブ上には掲載しません)




« フレーム表示遅延が操作遅延の要因であるという謂れなき罪 | トップページ | C言語のお勉強 ポインタ編 第1回 »