C Primer Plus學習 十七 遞迴

2021-07-23 10:53:41 字數 805 閱讀 7425

遞迴

c允許乙個函式呼叫其本身。這種呼叫過程被稱作遞迴(recursion)。遞迴有時很難處理,而有時卻很 方便實用。當乙個函式呼叫自己時,如果程式設計中沒有設定可以終止遞迴的條件檢測,它會無限制地進行遞 歸呼叫,所以需要進行謹慎處理。

遞迴一般可以代替迴圈語句使用。有些情況下使用迴圈語句比較好,而有些時候使用遞迴更有效。遞 歸方法雖然使程式結構優美,但其執行效率卻沒有迴圈語句髙。

/* recur.c —遞迴舉例   p236*/

#include

void un_and_down(int);

int main(void)

void un_and_down(int n)

printf("level %d: n location %p\n", n,&n);

}當開始執行第4級呼叫時,n的值是4,因此if語句的條件不滿足。這時不再繼續呼叫up_and_down () 函式。第4級呼叫接著執行列印語句#2,即輸出level 4,因為』n的值是現在函式需要執行return語 句,此時第4級呼叫結束,把控制返回給該函式的呼叫函式,也就是第3級呼叫函式。第3級呼叫函式中 前乙個執行過的語句是在if語句中進行第4級呼叫。因此,它開始繼續執行其後續的**,即執行列印語 句#2,這將會輸出level 3。當第3級呼叫結束後,第2級呼叫函式開始繼續執行,即輸出了 level 2。 依此類推。

注意,每一級的遞迴都使用它自己私有的變數n。你可以通過檢視位址的值來得出這個結論(當然, 不同的系統通常會以不同的格式顯示不同的位址。關鍵點在於,呼叫時的levell位址和返回時的levell 位址是相同的)。

c primer plus學習筆記

1.變數名命名規則 重要的 1 有含義 2 只能用字母字元 數字和下劃線 3 第乙個字元不能是數字 4 區分大小寫 5 不能用c 關鍵字 2.整型 1 無符合型別不能表負值 2 char short 16 int short long 32,int 和longlong 64,long c 11 寬度...

C PrimerPlus學習筆記

if語句中判斷恒等,將常量放前,防止由於 寫成 造成的難以查詢的bug。if 0 count 若寫成 0 count 會報錯,count 0 則不會命名空間 using namespace std cout one cout two std cout one std cout two using s...

C Primer Plus學習筆記

1.組合語言是特地的cpu設計所採用的一組內部指令的助記符,不同的cpu型別使用不同的cpu c給予你更多的自由,也讓你承擔更多的風險 自由的代價是永遠的警惕 2.目標 檔案 可執行檔案和庫 3.可以用畫幾個盒子的方式來跟蹤乙個程式的變數 一門語言的語法就是一套規則,用於管理這種語言中的合法語句組織...