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

例如

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

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

预先感谢您的任何澄清。

最佳答案

首先

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

等效于:
numberCount(currentNumber);
currentNumber += 1;

而第二个
numberCount(++currentNumber); //No stack overflow exception

相当于
currentNumber += 1;
numberCount(currentNumber);

我需要解释更多吗?

09-16 01:34