You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

关于这段C#代码中后置自增运算符执行逻辑的疑问

C#代码执行顺序解析

先看你给出的代码:

int value = 10;
value = value++ + --value;
Console.WriteLine(value);

你的两种理解里,第二种更接近正确逻辑,但核心要明确:C#中二元运算符的操作数是严格从左到右求值的,和运算符优先级无关。具体执行步骤如下:

  • 第一步计算左操作数value++:后置自增运算符会先返回当前的value值10,随后将value自增为11。
  • 第二步计算右操作数--value:前置自减运算符会先将当前的value(此时是11)减1变为10,然后返回这个新值10。
  • 最后执行加法运算:10 + 10 = 20,将结果赋值给value,所以最终输出是20。

你之前的误解在于混淆了运算符优先级和操作数求值顺序:优先级决定的是运算符的结合方式(比如先算乘除还是加减),但不管优先级如何,二元运算符的左右操作数一定是先算左边,再算右边。所以不存在“先处理优先级更高的--value”这种情况,必须先完成左边value++的求值,再处理右边的--value。

内容的提问来源于stack exchange,提问作者DenysB12

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.08 05:52:33