事前インクリメント ( i ) が L 値であるのに、事後インクリメント ( i ) が L 値ではないのはなぜですか?

Susan Sarandon
リリース: 2024-11-03 00:24:29
オリジナル
710 人が閲覧しました

Why Is Pre-Increment (  i) An L-Value While Post-Increment (i  ) Is Not?

なぜ事前インクリメントは 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 サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート