2012-06-14

C言語ポインタの何が難しいか

ポインタの何が難しいかって、あれは実装としてはアセンブラで言うところのただの間接アドレス指定に過ぎないのに規格上はそれを前提としていないので説明が抽象的なものにならざるをえずわかりにくいのと、文法がややこしくて初学者を混乱させるという2点があるから。まぁ規格は規格としてひとまず置いて実装を教えこめば解決するし、文法は改善しようもないので用例をひたすら覚えれば済むので、そこを抑えておけば覚えることができるはず。

はいえそれでも挫折する人が多いのは事実。これはC言語設計者が悪いといえば悪いんだけど、その悪い言語が世の中で一番普及しているのだからなんとかして慣れるしかない。もちろん逆に言えば覚えれば多少は人に勝ることができるのだから、覚える価値はあると思う。たぶん。マシンリソースが少ない分野ならまだポインタは使う必要があるしね。

http://anond.hatelabo.jp/20120612015506

記事への反応 -
  • ポインタとは、郵便屋さんのことです。まずは、次の2つのコードについて理解を深めましょう。#include <stdio.h>int main(void){ int *p, q; q = 199; p = &q; printf("%d", *p); return 0;}このコードは...

    • ポインタの説明したがる人って、なんで無駄に比喩を持ちだしてくるんだろう。分かりにくいだけだと思うんだけど。 メモリ区画にはメモリアドレスという名前がついてて、ポインタは...

      • ポインタの何が難しいかって、あれは実装としてはアセンブラで言うところのただの間接アドレス指定に過ぎないのに規格上はそれを前提としていないので説明が抽象的なものにならざ...

      • ポインタとは、郵便屋さんのことです。 もうここで読む気なくすよね

      • 本当にそう思う。 変に例え話を出してこれで理解しろって放り投げるんじゃなくて、 面倒でもメモリ内の状態を意識するよう一つ一つ丁寧に説明する方が理解し易いと思う。 馬鹿でも...

    • 俺のポインタ入門 ポインタとは配列の添え字とほぼ同等。 でも何か馴染みにくい。 char *a; があるとしよう。 この時作られたのは変数aなわけ。*aじゃないよ。 aには自然数が入ります...

記事への反応(ブックマークコメント)

ログイン ユーザー登録
ようこそ ゲスト さん