0

我最近一直在尝试了解后期和前期增量是如何工作的,但我已经想太多了。

一次迭代后“产品”是否变为 25?

Product *=5++

并且“商”是否在一次迭代后变为 5/6?

Quotient /= ++x
4

3 回答 3

2

5++只是不正​​确。

Quotient /= ++x;x = x + 1; Quotient = Quotient / x;(假设这些只是普通数字)相同。

于 2013-12-15T00:28:05.813 回答
1

您的代码不是有效的 C++,因为内置的后增量运算符只能应用于左值,但文字整数是右值。

除此之外,(内置)前增量表达式的值是增量值,而后增量表达式的值是原始值。

于 2013-12-15T00:28:30.290 回答
0

预增量修改变量并计算修改后的值。

后增量计算变量的值,然后递增变量。

int a = 5;
int b = ++a; // a = a + 1; b = a
int c = a++; // c = a; a = a + 1

考虑一下 ++ for int 的这些简单实现

int& int::preincrement()
{
    this->m_value += 1;
    return *this;
}

int int::postincrement()
{
    int before = this->m_value;
    this->m_value += 1;
    return before;
}
于 2013-12-15T00:52:15.577 回答