C语言——static关键字用法
C语言static关键字:
为什么要使用static——静态:
1、对于静态全局变量而言,存储在数据段,目的是限制其他源文件(.c文件)的访问权限
2、对于静态局部变量而言,存储在数据段,经过证实存储在数据段的静态存储区,生存周期维持在整个源文件内(函数结束不会立即销毁,会保存在数据段的静态存储区,可以改变值)
(记住,静态局部变量依旧是局部变量,只不过拥有了部分全局变量不死的特性!)
#includeint fun(int x) { static int a = 3; //static 修饰的a —— 静态局部变量 存储在数据段内,其值可以修改,最大的变化就是改变了生存周期 x += a++; //先赋值3,完成x = x +3 ,后面才自加 printf("a = %d\n",a); printf("x = %d\n",x); return x; //函数结束临时变量x被释放 x 依旧为 x = 2 } void main() { int x = 2, sum; sum = fun(x); //sum = sum + fun(x); printf("sum = %d\n", sum); }