【问题标题】:unary increment operator i++ in C#C# 中的一元递增运算符 i++
【发布时间】:2015-02-14 06:07:23
【问题描述】:

在我上次的采访中,我发现了这个棘手的问题。 在这两行之后 i 的值是什么。

int i=c;
//c is a constant
i=i++;

其中 c 是一个常数(其中 c 之前已初始化)。请给我一步一步的答案,而不是一个字的答案。

【问题讨论】:

  • 如果是 C#,那么为什么要标记 Java?
  • 您是否费心尝试运行代码? C# 5.0 规范的第 7.6.9 节解决了这个问题,但如果您只想知道代码将做什么,那么在这里发布问题是愚蠢的。你可以自己运行它。
  • @PeterDuniho 更具体地说我需要解释
  • 您需要比重复问题中已有的更好的解释吗?

标签: c# unary-operator


【解决方案1】:

最终 i 的值与 c 相同。

说明:- 当 i 被分配 i++;

步骤 1. 第一个 i++ 返回值 c(但未分配给左侧操作数 i)。

第 2 步。然后 i++ 将 i 的值递增到 c+1。

第 3 步。为 i 分配了在第 1 步中返回的值 c。

实际上 i 的值保持不变,但在执行过程中的某些位置 本来是c+1,但最后被赋值为c。

【讨论】:

    猜你喜欢
    • 2021-08-18
    • 2015-10-03
    • 2011-04-09
    • 1970-01-01
    • 1970-01-01
    • 2011-08-29
    • 1970-01-01
    • 2011-04-28
    相关资源
    最近更新 更多