C 當return 遇到遞迴

2021-08-20 11:58:26 字數 817 閱讀 6326

之前在用return;時,沒有遇到過遞迴情況,但是當我遇到遞迴情況的時候,有點不清晰了,相信這樣的人也不在少數,因此這裡我會給出當遞迴遇到return;會產生的結果。

#include 

void fun(int x)

printf("yes\n");

}int main(int argc, char

const *argv)

執行結果:

由此可見,當fun(1),進入函式體後,if語句條件不成立,所以進入for迴圈後,引數x就變成了0,於是執行fun(0),此時if條件成立,然後呼叫return;發現程式並沒有結束,而是只是退出了當i=0,遞迴呼叫的fun函式。

在來乙個比較複雜的測試:

#include 

void fun(int x)

printf("yes\n");

}int main(int argc, char

const *argv)

結果:

從這個結果可以看出,在遞迴函式中使用return;確實只是達到了退出當前函式體的功能。

C語言 當void遇到 void

void 表示無 任意型別指標,大小為8b,任何型別指標均為8b 舉個例子 char a calloc 8,5 分配5個連續8位元組記憶體空間 int b calloc 8,5 分配5個連續8位元組記憶體空間 結果使用char型別接收,每個char占用乙個位元組,因為分配的空間總共有40位元組,所以...

當C 遇到IOS應用開發

在object c中,字典 key value 使用nsdictionary 和nsmutabledictionary 可變長 使用語法如下 cpp nsdictionary dict nsdictionary dictionarywithobjectsandkeys value1 key1 val...

遞迴return的問題

遞迴的四條基本法則 引自 資料結構與演算法分析 c語言描述 mark allen weiss 著 1.基準情形。2.不斷推進。3.設計法則。4.合成效益法則。這裡說下return的作用域 return 對當前函式來說是結束了,對呼叫它的父函式來說你這個函式執行完成了,父函式就會接著執行下一語句。沒想...