/*
**test15.cpp : Defines the entry point for the console application.
**系统winXP SP3 32位.
**递归函数
*/
#include "stdafx.h"
#include "stdio.h"
int main(int argc, char* argv[])
{
int f(int);
int a = 0;
printf("a = %d\n",f(a));
return 0;
}
int f(int a){ //递归实现从0每次加一直到大于100
if(a > 100){
return a;
}else{
a += 1;
printf("a = %d\n",a);
return f(a);
}
}
/**********************************
常见死循环
int f1(){
return f2();
}
int f2(){
return f1();
}
**************************************/
Tips1:递归函数需要有终止条件,否则会陷入无线调用自身的循环之中。
Tips2:注意要点。要想实现递归的目的,就要在当前函数执行完毕后不退出,而函数不退出也就意味着该函数作用域内的临时变量的存储不会消失,这也会造成运行时内存被大量占据。
Tips3:其实递归就是个压栈出栈的操作。