int x=5;
式が次のようy=++x * ++x;
に評価されるとします。
最初に原因を実行++x
しx=6
、次に再び式++x
を引き起こしx=7
、評価y=x*x
して値を作成しますy=49
同じ理由を使用して、次のコード行
int z=5, x=5,y=0,p=0;
y=++x * ++x + ++x;
p= ++z + ++z * ++z;
y
andの同じ値を評価する必要がありp
ましたが、コンパイラは異なる答えを生成します。優先順位に欠けているものがあると思います。