5
int i=-1;
int a=65;
int b=a*i + ++i;

b の値は? ここで、=,+ の結合性は左から右、*,接頭辞の増分 (++) の結合性は右から左です。

int b=a*i + ++i; の場合、どのような評価順序を考慮する必要がありますか。

左から右へ?右から左へ?なんで?

4

3 に答える 3

-1

結合性と優先順位の 2 つがあります。

最初に優先順位をチェックし、次に結合性をチェックします。

あなたの式では int b=a*i + ++i;

++ は + や * よりも優先順位が高いため、最初の ++ が評価されます。その後、+ と *、* が優先されるため、* が評価されます。最後に + が評価されます。

ハックが示唆したように、同じ式で値を変更して使用しないでください(良い習慣ではありません)。

于 2014-03-19T17:23:23.157 に答える