关于递归函数

/*

**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:其实递归就是个压栈出栈的操作。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。