我刚刚意识到c ++递归编程中的奇怪情况。
我写了这个函数然后什么也没有返回。
int recursive(int m)
{
int n;
if(m == 0)
{
return 1;
}
n = recursive(m--); // If we change m-- with m-1 it returns correct answer
return n * m;
}
然后我突然想起m--在下一行影响m所以我的m值没有改变。但是--m会立即影响当前行。我试过但返回0。
你能解释一下这些出现的原因吗? 感谢。