C++ x+=1 x++ 和 x = x +1 是不一样的

C++ x+=1 x++ and x = x +1 are not the same?

本文关键字:不一样 x++ C++      更新时间:2023-10-16

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

我也搜索了这个主题,发现了提出相同问题的帖子,这些帖子通常通过说明语句/表达式相同来回答,但不同的结果是由于另一个代码错误。通过我将提供的示例,我看不到代码错误,所以请解释一下,谢谢。

int x = 0;
x++;
此时 x 应该是 1,

因为 x++ 将 1 加到 x。

那么为什么如果我将 x 分配给 0,然后继续编写代码"cout <<x++;"我在屏幕上得到的值为 0?!.如果 x++ 等于 x+1,如果 x 为 0,则 1+0=1,x++ 如何变为 0?有人告诉我这是由于++被放在x之后,但是如果处理加法1 + 0与0 + 1相同,为什么这很重要?

cout << x++;使用

后缀增量运算符时,在增量之前输出x的值。

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

++运算符有两种形式:前缀和后缀。您使用的是后缀表单。

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

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

x++只是返回x,然后将x增加1。

因此,在您的示例中cout << x++相当于cout << x; x = x+ 1;

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

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

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

Cout <<x++ 将首先打印 x,然后增加它,x++ 是后递增,因此在操作 x 之后增加。相反,++x 将做相反的事情。此外,如果您输入一些像 x+1 这样的表达式,该表达式将在打印之前被计算

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

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

希望这有帮助。