很多同学搞不懂static的作用,今天黄老师来跟大家普及一下:
首先, 在内存中,有一块独立的空间,叫静态区,专门用来存储静态static的数据。
作用一:在函数体,一个被声明为静态的变量在这一函数被调用过程中维持其值不变。
上代码最好理解了:
#include <stdio.h>
void f1(int i)
{
static int a = i++; //只执行一次,因为静态变量只执行一次
printf("%d\n",a);
}
void f2()
{
static int b = 1; //只执行一次
printf("%d\n", b++);//保留上一次的值
}
int main(int argc, char* argv[])
{
f1(1);
f1(2);
f1(3);
printf("\n-------------------------------\n");
f2();
f2();
f2();
return 0;
}
看看代码的演示效果:
a作为静态变量,虽然f1( i