首页 > 解决方案 > 使用静态变量进行递归调用的不同输出

问题描述

int fun1(int x){
    static int n;
    n = 0;
    if(x > 0){
        n++;
        return fun1(x-1)+n;
    }
    return 0;
}
int fun(int x){
    static int n = 0;
    if(x > 0){
        n++;
        return fun(x-1)+n;
    }
    return 0;
}

谁能告诉我 fun 和 fun1 之间的区别?得到不同的输出!!

标签: c++crecursionstatic

解决方案


fun1,每次调用该函数时n都设置为。0

In fun,在程序开始时n被初始化,0但此后仅由 更新n++


推荐阅读