C语言——static关键字用法


  C语言static关键字:   为什么要使用static——静态:       1、对于静态全局变量而言,存储在数据段,目的是限制其他源文件(.c文件)的访问权限       2、对于静态局部变量而言,存储在数据段,经过证实存储在数据段的静态存储区,生存周期维持在整个源文件内(函数结束不会立即销毁,会保存在数据段的静态存储区,可以改变值)         (记住,静态局部变量依旧是局部变量,只不过拥有了部分全局变量不死的特性!)     
#include

int 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);
}