前缀(++ 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