1、在函数体内用static修饰的静态变量,当这个函数被调用后,静态变量的值保持不变,比如 #include<stdio.h> int abc(int b) { static int a=10; a=a+b; printf(“a=%d\n”,a); return a; } int main() { int i=10; int j=30; int result=0; result=abc(i); result=abc(j); while(1); return 0; } 结果:a=20 a=50 也就是说第一次调用函数后a的值变为20,第二次调用函数,a的值当做20来用,而不是10; 2、在模块内(函数体外),只有该模块内的函数可以调用该静态变量 3、用static修饰的静态函数,只能被该模块内的函数调用,不能被模块外的函数调用 |