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



