抽象度と難易度

ところで初心者向けの学習用言語としてCが向いているかどうか、という議論があるようですが、会社の新人の教育担当を何度かしたことがある私の経験からすると、たいていの人は、「低レベルな概念の方が理解が早い」ようです(これもあちこちで書いてるな)。うちの会社に関して言えば、基本情報レベルの勉強を事前に済ませているというのもあるのでしょうが、メモリはわかっている。アドレスも(一応)わかっている。ポインタでつまづくのは、アドレスがわからないためではなく、「intへのポインタに1足すと4進んだりする」といった、アドレスとは異なる挙動を示すところからだと思います(私もそうだった)。

おお、なるほど。「変数」と「変数への参照」より、「変数を格納しているメモリ領域」と「そのアドレス」といった具体的なものの方が、理解しやすいってのはいかにもありそう。
ただ、高専、大学のプログラミングの講義で躓いている人を見ると「間接アドレス参照」という概念自体をなかなか理解できない人も多かったりする。あと、きむら(K)さんもかかれてましたけど、変数宣言の「*」と、dereference の 「*」を混同しがち。