ポインタ表記に関するコメント。

*ptr-- を例に取って考えましょう。

もしあなたが *ptr-- が *(ptr--) か (*ptr)-- のどちら
を表すか、紛らわしいと感じるなら、プログラムを書くと
きには、 「*(ptr--)」か「(*ptr)--」 のように明示的に
カッコを使って書きましょう。そのようにしてプログラム
を読みやすくするべきです(プログラムの保守・管理を容
易にする上で、自分にも他人にも読みやすいプログラムを
書くことは大切です)。

一方、仕事でプログラムを読む場合には *ptr-- がどちら
を表すのか知る必要があります。知っている場合は問題な
いですが、知らない場合にどうするか。。。そんな場合に
適切に対処できる能力も、プログラムを書く上での大切な
スキルです。あなたが今まで得た知識を動員して、*ptr--
の意味を調べましょう。

どうやって調べるか? 例えば以下のような手があります。

 (a) テキスト・ハンドアウトを見直す.
 (b) 試しにプログラムを書いて調べる.
 (c) 他の文献,資料,Web site 等を調べる.

(a) テキストなら、p.376 に演算子一覧とその優先順位が
載っています。ハンドアウトなら巻末付録にあります。そ
れを読んでも分からないなら、プログラムを書いて調べま
しょう((b)ですね)。それを試すのが、演習問題6なの
です。

他のポインタ表記も考え方は同じです。例えば *(p+1) が
分かりやすいケースも有り得るでしょうし、 p[1] が分か
りやすいケースもあるでしょう。その場合、自分が書き手
なら「分かりやすい」であろう書き方を採用しましょう。
一方、読み手なら、「どちらも同一な表現に過ぎない」こ
とを理解して読みましょう。