[2284] Re:C言語ポインタ完全制覇、記述に関する愚痴(^^;
投稿者:(ぱ)こと管理人
2022/05/08 00:43:54
ご意見ありがとうございます。
>p.71には「…式の中では、配列はその要素へのポインタに読み替えられるのです。」と
>あります。これって、"ポインタ"とは書かれていますが(そして上のp.193の記述でも
>「ポインタに読み替えられ」とありますが)これらって、全て、p.43に『…厄介なことに、
>世間では「ポインタ型」も「ポインタ型の変数」も「ポインタ型の値」も、単に
>「ポインタ」と呼んでしまうことが多いので、混同しないように気をつけてください。』
>と言っているところの、「ポインタ型の値」のことですよね?
>だから「左辺値ではありません」のですよね?
その通りです。
>せめて、『単に「ポインタ」と呼んでしまうことが多いので、混同しないように気をつけてください』と
>注意を喚起しているこの本では、随所の「ポインタ」という記述を、混同しにくいように〈クドく〉
>書き下して書いておいて頂けると有り難かったです。(文字数が増えるのを防ぐなら、「アドレス」とか?)
『混同しないように気をつけてください』のところについては、実は本書の、
「新・標準プログラマーズライブラリ」になる前の旧版では、注に
「※せめて本書の中では、区別して表記しようかと思ったのですが、どう書いても自然な
いい回しにならないので断念しました…… すみません」と書いてありました。
(あれ? 新版では削ったんだっけ?)
というわけで、ここは著者としても忸怩たるところではあります。
>これまでの僕の間違った理解では「strと書くことによって、str[0]の(1文字分を記録できる)アドレスが
>渡り、そこにリテラルで3文字も(ヌルを入れると4文字)押し込もうとしているから駄目なんだよな?」と
>思っていたのですが、その理解は完全に間違っていて…
この「間違った理解」は、strを「ポインタ型の変数」と間違って解釈した、ということであれば、
クドく書き下すべきだったんですかねえ。
ただ、strが「ポインタ型の変数」と解釈したとするとそれは「str[0]の(1文字分を記録できる)アドレス」
とも違うのでは、とは思いますが。