多くのプログラマーが式を括弧で囲んでいるのを目にします。例えば:
&(tab[i]) /* I use `&tab[i]`. */
[]
オペレーターはオペレーターよりも優先順位が高いため、必要ないと思います&
。では、なぜブラケットを使用するのでしょうか。
多くのプログラマーが式を括弧で囲んでいるのを目にします。例えば:
&(tab[i]) /* I use `&tab[i]`. */
[]
オペレーターはオペレーターよりも優先順位が高いため、必要ないと思います&
。では、なぜブラケットを使用するのでしょうか。
わかりやすくするために。誰もがすべての演算子の優先順位を記憶しているわけではありません。
私は、基本的に2つの理由があると言います:
最近の質問で、誰かが のようなコードを解読しなければなりませんでした--p---> x < 0
。あなたのコードと同じように、そのコードは C++ の解析規則に従って明確です。
ただし、人間はこれらの複雑なルールをすべて覚えているとは限らないため、多くのプログラマーは、他の人 (または自分自身) には完全に明確に見えない状況で括弧を使用することを習慣にしています。コードの本当の意図を文書化しています。
これは良いことです™</p>
後置演算子は常に単項演算子よりも優先順位が高いため、実際には必要ありません。
括弧を&(tab[i])
使用する人は、式で使用するのと同じ理由でそれらを使用します(8 * 5) / 2
。
彼らはそれがより明確だと思うからですか?特に次のような場合:
int *a[];
それは int の配列へのポインタですか、それとも int へのポインタの配列ですか?