递归调用
递归调用,简而言之就是函数调用自身。执行递归函数将反复调用其自身,每调用一次就进入新的一层。递归的原理比较简单,但是想要合理并且高效的应用起来不是那么容易,因为它的思想比较难,而且稍微控制不好,便会导致程序无限循环,浪费内存资源,直到最终全部资源被消耗掉而宕机。
先拿个最为简单的递归调用函说明:
/**** 打印结果: ****/
/**** 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;
}
函数实现的调用过程:
相关阅读
(一)递归概念递归本质:程序调用自身的编程技巧叫做递归。程序调用自身的编程技巧称为递归( recursion)。递归做为一种算法在程序设计语
void rec(int N) { //为了区分这两个递归,分别为它们取个别名好了 if (N>0){ rec(N - 1);//rec1 rec(N - 10)