可能重複:
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