3

最初の式は許可されているのに、2 番目の式は許可されていない理由:

void test()
{
   int a;

   ++a = getSomeInt();
   a++ = getSomeInt();
}

つまり、なぜ 2 番目のものを左辺値にすることが禁止されているのでしょうか。2 番目のものは理にかなっていますが、最初のものはそうではありません。最初のものでは、変数をインクリメントし、ここに新しい値を与えた直後に、それを失います。2番目の式ではそうではありません。なんらかの値を割り当て、その後変数をインクリメントすることは理にかなっています。

4

1 に答える 1