静态变量最大的作用就是:系统给函数内变量分配的内存在退出函数后不被释放 。
接下来我们看一下下面这个简单的例子:
#include<stdio.h>
int Square(int i)
{
return i*i;
}
int main()
{
int i=0;
i=Square(i);
for(;i<3;i++)
{
static int i=1;//定义静态变量i
i+=Square(i);
printf("%d ",i);
}
printf("%d\n",i);
return 0;
}
静态变量常考数值的输出打印问题;
在本题中我们可以如下分析:
首先进入for循环,函数外部我们的i=0,用来计算for循环了几次,
函数内部我们的静态变量i=1,通过函数调用我们可以得到第一次打印的i=2;
再次进入for循环我们外部的i =1,参与函数调用的i变为了2,故我们第二次打印的i=6;
再次进入for循环,我们外部的变量i变为2,参与函数调用的i=6,故我们打印的i=42;
当外部的i=3不满足循环条件,故跳出循环,最后在函数外部打印的i=3。