3

私の質問は長くはありませんが、私には不可解です。私は、学習する言語のすべての規則を知りたいと思っている (当然のことながらそう思う) 人の 1 人です。その言語がなぜそのようなことをするのか知りたいです。

では、なぜポインタではなく++*iの値をインクリメントするのでしょうか? プリインクリメント演算子は、間接演算子よりも優先順位が高くなります。それは常識的なことのように思えますが、繰り返しになりますが、その理由を正確に知らなければなりません。できれば参考文献を教えてください。*ii

4

2 に答える 2

5

として解析できません*(++i)よね?

ちなみに、*と prefixの優先順位++同じで、結合規則は右から左です。

于 2013-11-10T08:48:15.583 に答える
3

接頭辞++は単項演算子と同じ優先順位ですが*、接尾辞hsa は単項演算子++よりも優先されます。 コンパイラの場合、次のように解釈します *
++ *i

++ (*i);  

つまり、 dereference i、それを使用して、ポインターの値を変更せずに、逆参照された値をインクリメントします。

于 2013-11-10T08:46:18.853 に答える