递归打印,很短,为什么一定要加static ,不加的话就会无休止打印
#include <stdio.h>#include <stdlib.h>
#include <string.h>
#include <time.h>
void recursion()
{
printf("hi\n");
static int count = 10;
if (--count)
{
recursion();
}
}
int main()
{
recursion();
return 0;
} 存储在静态数据区的变量会在程序刚开始运行时就完成初始化,也是唯一的一次初始化。共有两种变量存储在静态存储区:全局变量和 static 变量。 dxyxln 发表于 2020-11-26 19:31
存储在静态数据区的变量会在程序刚开始运行时就完成初始化,也是唯一的一次初始化。共有两种变量存储在静态 ...
没明白 加上static,就是静态变量,存储在静态存储区,count只会初始化一次
之后每次递归,count会减一,当count减到0的时候就不再递归了
但是若不加static,就是局部变量,那么每次递归调用函数recursion的时候,count都会初始化为10,这样就进入无限递归了 {:10_289:}
页:
[1]