递归是怎么一步步实现的

来源:互联网 发布:淘宝网廷长收货 编辑:程序博客网 时间:2024/05/19 02:40
使用递归函数一般会简化算法流程,降低函数的空间复杂性,使代码看起来更加的简洁。但递归带来诸多好处的同时也会降低代码的可读性,
尤其是复杂的函数只能看成“黑盒子”去理解,单步调试虽然好用但是不适用于复杂函数。最好的办法是真正的理解递归!递归就是函数
在执行过程中调用自身。这里以输入字符倒序输出(字符串反转)代码为例进行简要介绍。本质就是一步步走到结束条件然后再倒回来把每
一次递归的完整步骤走完。具体过程见图(手写的比较low)。
#include<stdio.h>void reverse();int main(){    printf("输入一个字符:");reverse();printf("结束就打出来");getchar();return 0;}void reverse(){char c;printf("#");scanf("%c",&c);printf("*");if ( c!= '\n'){  printf("$");  reverse();  printf("%c",c);}else  printf("123");}


[根据main函数流程,红色笔迹表示
一直再往前推进,铅笔部分从右到左依次表示递归函数reverse结束]
原创粉丝点击