- C语言从入门到精通(视频实战版)
- 胡超 梁伟 闫玉宝等编著
- 700字
- 2021-03-28 21:40:11
6.2.3 函数的递归调用
函数的递归调用是指在一个自定义函数中再嵌套使用相同函数,以实现循环调用相同函数的功能。在实例程序中,使用函数的递归调用可以减少代码的编写。但是,函数递归调用将会大大影响程序运行的效率,并且容易造成程序死循环。在本节中,将介绍与函数递归调用相关的知识点。简而言之,函数递归调用就是函数自己调用自己。例如,用户在实例程序中,自定义一个函数add(),用于实现加法运算输出计算结果,并且利用该函数实现递归调用。具体的代码如下:
void add(int a); //声明自定义函数的原型 #include <stdio.h> //包含标准输入/输出头文件 int cmp=0; //定义并初始化中间计算值 main() //主函数开始 { int b=0; //定义并初始化整型变量 printf("请输入一个数据:\n"); //输出提示语 scanf("%d",&b); //获取用户的输入 add(b); //调用自定义函数 return 0; } void add(int a) //实现自定义函数 { cmp=cmp+a; //实现累加 printf("计算结果为:%d\n",cmp); //输出提示语 if(cmp>=10) //判断数值 { printf("递归调用完毕!\n"); } else { add(cmp); // 自定义函数本身 } }
图6.7 程序运行结果
在实例代码中,用户自定义了一个函数“add(int a)”,用于实现数据的相加操作。在主函数中,用户直接调用了该自定义函数,并将获取到的输入数据作为该函数的参数。而在自定义函数的功能实现代码中,用户使用代码段“cmp=cmp+a;”实现累加操作,并输出累加后的结果。为了实现函数的递归调用,在函数add()中,又以累加后的值作为参数,对自定义函数add()进行调用。这样,用户就能够实现数据的累加效果,其运行结果如图6.7所示。
如图6.7所示,程序运行后,将在界面中成倍地输出累加后的数据。利用函数的递归调用,可以对同一个函数或者同一数据进行多次处理或调用。
注意 在使用递归调用时,必须使用必要的代码结构对控制程序运行,防止出现死循环。例如,在实例代码中,用户使用了一个if结构对累加值进行判断。