C ++ x + = 1 x ++和x = x +1不一样?

时间:2016-06-11 08:16:06

标签: c++

我无法理解这些陈述如何产生不同价值的概念。据我所知x + = 1,意味着x = x + 1.我也知道x ++应该相当于x + 1.

我也搜索了这个主题并找到了提出相同问题的帖子,这些帖子通常通过声明语句/表达式是相同的,但不同的结果是由于另一个代码错误。通过这个例子我将提供我不知道代码是如何出错的,所以请解释一下,谢谢。

int x = 0;
x++;
此时 x应为1,因为x ++将x加1。

那么为什么如果我将x分配给0,然后继续编码" cout<< X ++;"我在屏幕上得到0值?!如果x ++等于x + 1并且x为0然后1 + 0 = 1,x ++如何变为0?由于++被放在x之后,我被告知它,但为什么处理加1 + 0与0 + 1相同呢?

6 个答案:

答案 0 :(得分:3)

当您使用后缀增量运算符时,

cout << x++;在增量之前输出x的值。

cout << ++x;会做你期望的事。

答案 1 :(得分:1)

++运算符有两种形式:prefix和postfix。您正在使用后缀表单。

x++返回x的当前值,然后递增它。当您使用cout << x++时,它会打印x 然后会增加它。

++x做你想要的:它增加x 然后返回它。 cout << ++x会给你你想要的东西。

答案 2 :(得分:0)

x++只返回x,然后将x增加一个。

因此,您的示例中的cout << x++将等同于cout << x; x = x+ 1;

答案 3 :(得分:0)

这是后增量,这意味着它将按原样执行变量,然后添加到变量。

如果你尝试了预增量++x,那么它会添加到变量中,并按原样执行变量(现在增加)。

因此,int x = 0; x = x + 1; cout << x;int x = 0; x++; cout << x++;将全部打印1

答案 4 :(得分:0)

Cout&lt;&lt; x ++将首先打印x然后增加它,x ++是后增量所以在操作x增加之后。相反,++ x会做相反的事情。而且,如果你喜欢像x + 1这样的表达式,那么表达式将在打印前进行评估

答案 5 :(得分:0)

x ++是一个后增量,这意味着它在运行当前语句后递增。

相反,++ x在执行增量之前执行当前语句。

希望这有帮助。