递归函数中,位于递归调用前、后的语句和各级被调用函数的执行顺序非常的诡异 。
每一次函数调用都会有一次返回.当程序流执行到某一级递归的结尾处时 , 它会转移到前一级递归继续执行 。递归函数中,位于递归调用前的语句和各级被调用函数具有相同的执行顺序 。递归函数中,位于递归调用后的语句的执行顺序和各个被调用函数的顺序相反 。这里涉及的函数的调用与返回机制,递归函数的压栈与出栈操作 。函数调用一次必定要返回一次,何时返回?返回的形式有两种,一种是遇到return语句 , 一种是执行到函数的最底部 。
直接看代码:
#include<stdio.h>#include<stdlib.h>void decToBin(int n) { if (n > 0) { decToBin(n / 2); printf("%d ", n % 2); }}void main(){ decToBin(13); system("pause");}//输出:1 1 0 1printf("%d ", n % 2);在整个程序中是一个什么样的执行顺序?

文章插图
总结一下:
递归分为两个阶段:递推与递归(回归),递推时,递归函数前的代码被执行,回归时 , 递归函数后的代码被执行 。
【用递归将十进制数转换为二进制数】-End-
- 玻儿化妆品质量怎么样 玻儿彩妆那么便宜能用吗
- 文山三七多少钱一斤 文山三七的功效与作用治什么病
- 鹿鞭的功效与作用及食用方法
- 用水煮熟的栗子怎样去皮快 水煮的栗子怎么好剥皮
- 聚酯纤维的四件套好用吗 聚酯纤维四件套能用吗
- 有氧登山怎么用 有氧登山运动
- 风油精可以祛斑是真的吗 风油精去痘痘有用吗
- 铁皮枫斗跟铁皮枫斗晶有什么区别 铁皮枫斗的正确食用方法
- 绿萝最好的肥料 平均多久用一次呢
- 毛巾用几天变一块块黄 毛巾用几天变一块块黄是怎么回事