前缀(++ x)和后缀(x ++)操作如何工作?

有人可以告诉我前缀/后缀运算符是如何工作的吗?我一直在网上寻找很多东西,但是什么也没找到。

据我所知,prefex首先递增,然后进行操作,然后分配。

Postfix将首先执行该操作,然后分配并递增。

但是我的代码有点麻烦:

int x, y;

x = 1;

y = x + x++; // (After operation y = 2)(x=2)

但是,当我这样做时:

y = x++ + x; // (After operation y = 3)(x=2)

我不确定为什么这些操作会有所不同。我有两个问题:

  • 你能解释一下区别吗?

  • 这如何适用于其他运算符前缀?

回答:

  • 在C#中,操作数按+从左到右的顺序进行评估。
  • 在C和C ++中,+未指定的操作数的求值顺序。

对于C#,您的示例工作如下:

 y = x + x++;

^ x is 1

^ x is increased to 2, but the postfix increment returns the old value (1)

y = 2

y = x++ + x;

^ x becomes 2, but postfix increment returns the old value (1)

^ x is now 2 here

y = 3

以上是 前缀(++ x)和后缀(x ++)操作如何工作? 的全部内容, 来源链接: utcz.com/qa/412670.html

回到顶部