必威体育Betway必威体育官网
当前位置:首页 > IT技术

c语言之递归调用

时间:2019-07-24 18:43:15来源:IT技术作者:seo实验室小编阅读:53次「手机版」
 

递归调用

递归调用,简而言之就是函数调用自身。执行递归函数将反复调用其自身,每调用一次就进入新的一层。递归的原理比较简单,但是想要合理并且高效的应用起来不是那么容易,因为它的思想比较难,而且稍微控制不好,便会导致程序无限循环,浪费内存资源,直到最终全部资源被消耗掉而宕机。

先拿个最为简单的递归调用函说明:

/**** 打印结果: ****/
/**** n = 1 ****/
/**** n = 2 ****/
#include<stdio.h>
#include<stdlib.h>

void myFunc(n)
    {
      if (n == 1)
      {
        printf ("n = %d\n",n);
     /****return;语句很关键,没有回使程序进入死循环****/
        return;
      }
    myFunc(n-1);
    printf ("n = %d\n",n);
    }

int main(void)
   {
    int n = 2;
    myFunc(n);
    system("pause");
    return 0;
   }

其调用过程如图:

这里写图片描述

下面用递归的思想来实现将十进制数转换为二进制数:

/**** 结果:111000 ****/
#include<stdio.h>
#include<stdlib.h>
void myFunToBin(var)
    {
      int pTmp;
      pTmp = var % 2;
      if (var > 2)
      {
        myFunToBin (var / 2);
      }
      printf ("%d",pTmp);
    }

int main(void)
   {
    int var = 56;
    myFunToBin(var);
    system("pause");
    return 0;
   }

函数实现的调用过程:

这里写图片描述

相关阅读

java基础之递归调用

(一)递归概念递归本质:程序调用自身的编程技巧叫做递归。程序调用自身的编程技巧称为递归( recursion)。递归做为一种算法在程序设计语

原来连续两次递归调用很简单

void rec(int N) { //为了区分这两个递归,分别为它们取个别名好了 if (N>0){  rec(N - 1);//rec1 rec(N - 10)

分享到:

栏目导航

推荐阅读

热门阅读