假设您有一个递归方法,并且在递归调用中后增加/减少了一个值。当预递增/递减不发生时,为什么这会导致堆栈溢出异常?
例如
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);
我需要解释更多吗?