前增量和后增量

时间:2013-12-15 00:23:00

标签: c++ post increment pre

我一直试图了解帖子和预增量最近是如何工作的,而且我已经过度思考了。

"产品"一次迭代后变成25?

Product *=5++

" Quotient"一次迭代后变为5/6?

Quotient /= ++x

提前谢谢。

3 个答案:

答案 0 :(得分:2)

5++是不正确的。

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

答案 1 :(得分:1)

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

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

答案 2 :(得分:0)

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

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

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;
}