fishyou 发表于 2020-10-21 20:06:54

关于递归函数中函数的变量问题

//程序的作用,使用递规方法,打印 I love you!5次

#include <stdio.h>

int pf();//声明一个函数
int pf()   //定义函数
{
        static int count=5;//问题:此处把static int count=5; 写成int count=5;有什么区别?
        printf("I love you!\n");
        if(count--)
        {
          printf("%d\n",count);
          pf();
          
        }
        return 0;
}

int main()
{

    pf();
        return 0;
}

sunrise085 发表于 2020-10-21 20:15:41

静态变量定义一次,之后递归调用的时候不会重新定义,也不会重新赋值为5
若把static去掉,那么每次递归调用的时候都会定义一个count,并赋初值为5,这样就进入了无限递归。

资治通鉴 发表于 2020-10-21 20:45:23

楼上说的很好,这是一个局部静态变量
页: [1]
查看完整版本: 关于递归函数中函数的变量问题