なぜ事前インクリメントは L 値なのでしょうか?
事前インクリメント ( i ) と事後インクリメント (i ) は両方ともインクリメントされますが、変数ではありますが、l 値となると大きく異なります。 l 値は、変更可能なメモリの場所を参照する式です。
説明
ポストインクリメント (i ) は、変数 i の元の値を返します。それへの参照。その結果、 i は変更可能な位置を持たない計算値を表すため、 i を割り当てることはできません。次の例を考えてみましょう。
int i = 5; i++; // Cannot assign a value to i++ because it does not represent a variable.
一方、pre-increment ( i) は、インクリメントされた変数への参照を返します。これにより、変更可能なメモリの場所を指すため、割り当てることが可能になります。例:
int i = 5; ++i; // The pre-increment returns a reference to the incremented variable.
したがって、 i は変更可能なメモリ位置への参照を提供するため l 値とみなすことができますが、 i は計算された値を表すため、l 値とみなすことはできません。さらに、パフォーマンス上の理由から、特にイテレータのような重量のあるオブジェクトの場合、参照ベースのアプローチのため、事前インクリメントが推奨されます。
以上が事前インクリメント ( i ) が L 値であるのに、事後インクリメント ( i ) が L 値ではないのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。