【问题标题】:How does return i++ work?return i++ 是如何工作的?
【发布时间】:2014-05-13 09:08:06
【问题描述】:

这是一个关于 ++ 运算符的问题。这是一个不能解决问题的问题,但我相信知道答案会非常有用。因此,虽然 StackOverflow 是一个信息来源,但我想在此处附加可用的知识!

那么,问题来了:

int i = 0;

int getNextInt(){

    return i++;
}

就是这样。问题是 ++ 运算符是如何在函数调用堆栈中实现的,以及当我们在代码中调用该函数时实际发生增量的位置。

我真的想了很久!

【问题讨论】:

  • 删除“语言无关”标签并包含相关语言标签 - 因为++ 与“语言无关”
  • 您可以在此处找到适用于 Java 的问题的答案:stackoverflow.com/questions/654715/…

标签: stack operators


【解决方案1】:

我不知道编译器实际上对堆栈做了什么,但如果它选择这样做,编译器可以轻松地将其重新排列为:

int getNextInt() {
    int temp = i;
    i++;
    return temp;
}

【讨论】:

    【解决方案2】:

    i++ 等同于说i = i+1

    这只是重新定义变量的一种简写方式。

    【讨论】:

      【解决方案3】:

      它发生在函数返回它的值之后。在这种情况下,它返回 0,然后递增变量,所以下次它会返回 1

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2016-07-05
        • 2017-03-24
        • 1970-01-01
        • 1970-01-01
        • 2011-09-25
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多