4.10 递归
Recursion
C functions may be used recursively; that is, a function may call itself either directly or indirectly.
递归是一个坎,更多有关递归的内容,可以在网上找找例子很多,在等到学数据结构的时候,你会更深刻理解递归。
递归是一个编程技巧,不是这一次就会了。只能慢慢去体会,什么场景适合递归?什么场景不适合递归?
用两个例子去体会递归
4.10.1 Print call myself
4.10.1 print-call.c
跳出循环后,才开始执行第一次 printf()
语句
第二次打印:
减少重复代码量: 例如printf()
只写了一遍,
再思考一下,if
语句是用来防止 “栈溢出” (死递归 death recursion)
局部变量、函数的形参、每一次函数的调用,都会在栈区申请空间。
stack overflow 栈溢出(栈区资源是有限的)
4.10.2 MyStrlen count character
编写函数不允许创建临时变量,求字符串长度。
4.10.2 mystrlen-recursion.c
Last updated
Was this helpful?