最近、ポストインクリメントとプリインクリメントがどのように機能するかを理解しようとしてきましたが、考えすぎてしまいました。
「製品」は1回の繰り返しで25になりますか?
Product *=5++
そして、「商」は 1 回の繰り返しで 5/6 になりますか?
Quotient /= ++x
最近、ポストインクリメントとプリインクリメントがどのように機能するかを理解しようとしてきましたが、考えすぎてしまいました。
「製品」は1回の繰り返しで25になりますか?
Product *=5++
そして、「商」は 1 回の繰り返しで 5/6 になりますか?
Quotient /= ++x
5++
は間違っています。
Quotient /= ++x;
と同じですx = x + 1; Quotient = Quotient / x;
(これらは単純な数値であると仮定します)。
組み込みのポストインクリメント演算子は左辺値にのみ適用される可能性がありますが、リテラル整数は右辺値であるため、コードは有効な C++ ではありません。
それに加えて、(組み込みの) プレインクリメント式の値はインクリメントされた値ですが、ポストインクリメント式の値は元の値です。
プレインクリメントは、変数を変更し、変更された値に評価します。
後置インクリメントは、変数の値に評価されてから、変数をインクリメントします。
int a = 5;
int b = ++a; // a = a + 1; b = a
int c = a++; // c = a; a = a + 1
int の ++ のこれらの単純な実装を検討してください
int& int::preincrement()
{
this->m_value += 1;
return *this;
}
int int::postincrement()
{
int before = this->m_value;
this->m_value += 1;
return before;
}