3

假设您有一个递归方法,并且您在递归调用中增加/减少一个值。为什么在预递增/递减不会导致堆栈溢出异常?

前任。

numberCount(currentNumber++); //Stack overflow exception

numberCount(++currentNumber); //No stack overflow exception

提前感谢您的任何澄清。

4

2 回答 2

11

首先

numberCount(currentNumber++); //Stack overflow exception

相当于:

numberCount(currentNumber);
currentNumber += 1;

而第二个

numberCount(++currentNumber); //No stack overflow exception

相当于

currentNumber += 1;
numberCount(currentNumber);

需要我解释更多吗?

于 2013-04-19T00:17:21.087 回答
0

在这种情况下numberCount(currentNumber++);,如果函数抛出异常numberCount,变量会currentNumber增加吗?

于 2014-06-13T07:00:18.553 回答