2

私は最近、Kenneth A. ReekのCのPointers on bookを読んでいます。この本にはCの演算子とその優先順位のテーブルがあります。しかし、本書に記載されている情報が正確で最新のものであることを確認するために他のリソースを調べたところ、さまざまな情報があることがわかりました。私は、正確に何を意味するかを正確に示す例を提供します。情報の衝突オペレーターの優先順位について

本書では、関数呼び出しオペレータ()の優先順位が最も高い表が提供されています。 Postfixのインクリメントとデクリメントの演算子が後に来ています。私は情報を検証するために他のリソースを調べました。私はこれを確認したresourceとこのresourceとこのresource。これらのリソースで提供される優先順位の情報は、「CのPointerの説明」の内容と一致します。問題は、他のリソースとは異なる優先順位の規則があるため、cppreferenceのprecedence tableで始まります。

何か不足していますか?同じセル内にある

+1

不一致は何ですか? –

+0

'()'が後置演算子であると仮定すると、 '++'と '--'の後置に関する優先順位は完全に無関係です。オペレータの順序は、最初に適用されるものを決定します。 – EOF

+0

Postfixのインクリメント/デクリメント演算子は**前に** **関数呼び出し演算子はcppreferenceで – ugar

答えて

6

already mentioned in the linked resourceとして

演算子は、所与の方向に、同じ優先順位で評価される(セルに記載されている演算子のいくつかの行があってもよいです)。たとえば、式a=b=cは、右から左への連想のためにa=(b=c)として解析され、(a=b)=cとして解析されません。

ので、(同じ優先順位を持つ)事業者の書かれた順番任意の物品でたいした、連想性(実際の文の中に存在するが、評価される)しないことが重要です。

関連する問題