返回i ++如何工作?

时间:2014-04-02 08:18:37

标签: stack operators

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

所以,问题是:

int i = 0;

int getNextInt(){

    return i++;
}

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

我真的很想知道很久!

3 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:0)

我不知道编译器对堆栈实际做了什么,但是如果它选择了,编译器可以很容易地重新排列它:

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

答案 2 :(得分:-1)

i++i = i+1

相同

这只是重新定义变量的简便方法。