c語言遞迴講解分析

2022-04-29 18:39:07 字數 1250 閱讀 6167

c語言允許函式呼叫它自己,這種呼叫的過程稱為「遞迴(recursion)」

舉例說明,如下**:

#include void up_and_down(int

);int main(void

)void up_and_down(int

n)

定義乙個函式up_and_down(int n),且函式當中再次呼叫本身。下面是程式執行效果:

[root@miwifi-r4-srv c]# cc recur.c

[root@miwifi-r4-srv c]# ./a.out

level 1: n location 0x7ffdbc113dac

level 2: n location 0x7ffdbc113d8c

level 3: n location 0x7ffdbc113d6c

level 3: n location 0x7ffdbc113d6c

level 2: n location 0x7ffdbc113d8c

level 1: n location 0x7ffdbc113dac

**分析;函式up_and_down(int n)中在包含if語句,符合條件變再次呼叫自身,那麼可將up_and_down(int n)分解寫成如下形式:

void up_and_down(int

n) //根據主函式賦值,n=1;

printf(

"level %d: n location %p\n

",n,&n); //執行語句,輸出顯示:level 2 :n ............

}printf(

"level %d: n location %p\n

",n,&n); //執行語句,輸出顯示:level 1 :n ........

}

分析**行為如下。

1;n 接收到主函式值為1,執行printf()函式,之後判定if語句,條件為真則繼續呼叫本身,執行printf()函式,判定if語句。直到if條件為假,停止呼叫本身。

2;當 n 的值為3 時。if條件語句為假,則跳過if語句,執行printf("level %d: n location %p\n", n , &n);(注意:此時n的值為3).

3;當遞迴函式(n值為3時)執行結束,則將控制權返回給上一級遞迴(n的值為2)的時候,繼續完成遞迴函式。重複行為,直到返回到主函式,即n的值為1的時候。

遞迴下降分析程式設計 演算法講解之遞迴演算法

前面已經介紹了關於遞迴呼叫這樣一種操作,而遞迴程式設計是c 語言程式設計中的一種重要的方法,它使許多複雜的問題變得簡單,容易解決了。遞迴特點是 函式或過程呼叫它自己本身。其中直接呼叫自己稱為直接遞迴,而將a呼叫b,b以呼叫a的遞迴叫做間接遞迴。例1 給定n n 1 用遞迴的方法計算1 2 3 4 n...

C語言的遞迴思想例項分析

通俗點來說,遞迴就是自己呼叫自己。遞迴的難點一是理解遞迴的執行呼叫過程,二是設定乙個合理的遞迴結束條件。下面來看一段摘自書中的簡單程式 include long fact int n long ct int n int main 程式設計客棧void else long fact int n ret...

c語言詳細講解!

你知道我們申明乙個變數時象這樣int i 這個i是可能在它處重新變賦值的。如下 int i 0 i 20 這裡重新賦值了 不過有一天我的程式可能需要這樣乙個變數 暫且稱它變數 在申明時就賦乙個初始值。之後我的程式在其它任何處都不會再去重新對它賦值。那我又應該怎麼辦呢?用const const int...