关于递归函数中函数的变量问题
//程序的作用,使用递规方法,打印 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;
} 静态变量定义一次,之后递归调用的时候不会重新定义,也不会重新赋值为5
若把static去掉,那么每次递归调用的时候都会定义一个count,并赋初值为5,这样就进入了无限递归。 楼上说的很好,这是一个局部静态变量
页:
[1]