C言語のポインタの表現の歴史的背景
C言語はポインタの理解が難しいと、方々で言われています。
その原因の一つにポインタの表記方法があると考えています。
例えばポインタ宣言時と、アドレス代入時で同じ*の意味が異なります。
int *pointer;
の*
は、pointer
がポインタであることを示すもので、
a = *pointer;
の*
は、pointer
アドレスに格納された値を取り出すこと示すものです。
ここで私が抱く疑問は、
int *pointer
の表現方法として、*
を使わない方法をなぜ取らなかったか、できない理由があったのかということです。
例えばconst
やstatic
のように、int
の前にpoint
とか書く方法もあったのではないでしょうか。
また、
ポインタpointer
は、*pointer
で中身を指し示し、pointer
でアドレスを表現しますが、
これ、どう考えても逆の方が良かったんじゃないの?って思います。
逆にすると、何かしら弊害があるのでしょうか。
まだまだC言語について知識が足りないため、至らない点あるかと思いますが、
お付き合い頂ければ幸いです。