什么是递归?
int f(int x)
{
int y, z;
z = f(y);
return (2*z);
}
这程序就叫递归吧,而且是死递归。
# include <stdio.h>
void x(void)
{
printf("11\n");
main();
}
int main(void)
{
printf("22\n");
x();
return 0;
}
以上程序是肯定是死递归现象。但是这是递归吗?
在调用一个函数的过程中又出现直接或间接地调用该函数本身,称为函数的递归调用。
[解决办法]
递归一定要有返回的条件
不能一直无休止的让它执行
[解决办法]
int f(int x)
{
int y, z;
z = f(y);
return (2*z);
}
这是递归,但没有设置跳出的语句,递归函数在调用它本身之前通常都设置一个判断语句,如if(condition) return value;来结束递归。
void x(void)
{
printf("11\n");
main();
}
怎么在别的函数里调用主函数?
只能在主函数里调用其它的函数,而不能在任何函数中调用主函数
[解决办法]
递归是不断的调用自身的函数
[解决办法]
支持