可能重复:
What is recursion really and explain the output of this program?
What is really happening in this code?我如何解决下面的代码?
我有一个递归函数,我不明白。我甚至不知道代码是否有效:
int count(int x) // suppose x is 3
{
if(x>0)
{
count(--x);
printf(x);
count(--x); // control reaches here or not?
}
}
这只是伪代码。以3作为初始变量。请根据上下文解释堆栈的概念。这段代码让我困惑了好几天,而且我也找不到这个代码的答案。
显然这是一个很大的功课,因为许多新手都在问同样的问题。阅读一本关于递归的好书是最好的建议。在几分钟内向不知名的观众解释是不可能的。 –
请注意,您不会从非void函数返回任何内容。这是未定义的行为。 –
搜索所以递归,并找到一些其他答案给这个确切的问题。有很多好的。如果你还不明白,请参考那些更新你的问题。 – Mike