>これなら、配列に書き込む時オーバーフローしてもしかたがないと思う反面
>過去にどっかで、誰か偉い人が、配列というものをポインタとはまた別の物として
>規定をなぜしてくれなかったのかと思います。
配列とポインタがこんなふうにこんがらがった変な言語はC/C++くらいなものであり、
たいがいの言語では、明確に別なものとして定義されています(ポインタではなく
参照と呼んでいるかも知れないけれど)。
ポインタ完全制覇にも書いたように、Cはもともと現場の要求を満たすために
でっちあげられた言語なので、「ベストな言語」どころか「ベストを目指した言語」
でもないように思います。でも、そこそこよくできていたため広く使われてしまった、
というのが世の常であるわけで。
デザインの「悪い方がよい」原則
http://chasen.org/~daiti-m/text/worse-is-better-ja.html
>ついでに、初期化で
>char array[] = "abcd";
>char *p = array;
>の意味が最初僕はわかりませんでした。「*pの内容にarray?どういうこと?」と思いました
>これもchar* p = array;とすれば意味がすんなりわかりました。
これは、
char *p;
よりも
char* p;
と書くほうがわかりやすい、という意味でしょうか?
それはそれで否定しませんが、それで問題は解決しない、ということもポインタ完全制覇には
書きました。