-7

我写了这个非常简单的程序:

    #include <iostream>

using namespace std;

int main()
{
    int x = 0;

    cout << x++<<endl;
    cout<<++x<<endl;
    int y = 0;

    cout<<y--<<endl;
    cout<<--y<<endl;
    return 0;
}

这就是我运行它时得到的:

0

2

0

-2

我使用 code::blocks 编写程序,我的操作系统是 Ubuntu 12.10。我应该如何修复我的程序,所以我会看到 0 1 0 -1?

4

4 回答 4

4

您需要了解post increment(decrement) 和 pre increment(decrement) 的概念

后增量

cout << x++<<endl;

您可以将这一行理解为“返回 x 的值”+“增加 x 的值”。即返回值在增量之前。

所以返回 0 并将 x 的值增加到 1。

预增量

cout<<++x<<endl;

这是相反的 - 返回增加的值。

所以将 x 的值增加到 2 并返回 2。

于 2013-01-25T08:22:43.663 回答
2
cout << x++ << endl;

后增量x从 0 增加到 1,并产生值 0。 的值x现在为 1。

cout << ++x << endl;

预增量x从 1 增加到 2,并产生值 2。 的值x现在为 2。

于 2013-01-25T08:26:06.793 回答
1

x++将使您的变量为 1,但由于 after++ 的行为而被计算为 0,届时++x将为 2

“for”循环中的后增量和前增量产生相同的输出

于 2013-01-25T08:24:19.637 回答
1

X++ 首先打印它,然后递增该值。++X 首先增加值,然后打印它。

所以,

cout<<x++<<endl   // Prints '0' and increments to '1'
cout<<++x<<endl   // Increments '1' to '2' and prints it
于 2013-01-25T08:25:41.647 回答