C语言-入门-static(十五)

x33g5p2x  于2022-08-17 转载在 其他  
字(0.6k)|赞(0)|评价(0)|浏览(564)

前沿

对局部变量加上static的作用:

  • 延长局部变量的生命周期,将变量提升到全局变量,但是它并没有改变变量的作用域
  • 会进行默认类型初始化

对于全局变量加上static的作用:

  • 共有变量转换为当前文件私有变量
  • 会进行默认类型初始化

默认初始化

static int num ;
static double d ;
int main()
{
    printf("%d\n",num);//0
    printf("%f\n",d );//0.000000
    return 0;
}

变量私有化

如果想让某个全局变量只在某个文件中使用, 并且不和其他文件中同名全局变量共享同一块存储空间, 那么就可以使用static

我们先看看不加static效果是啥

那么我们加static效果是啥

函数内使用static

可以实现变量在函数内一次声明,多个此调用共享变量

void test(){
    static int num = 0; // 局部变量
    num++;
    // 如果不加static输出 1 1 1
    // 如果添加static输出 1 2 3
    printf("num = %i\n", num);
}
int main()
{
    test();
    test();
    test();

    return 0;
}

运行可以发现,如果在函数内部变量上添加static后,之后在第一次调用的时候初始化变量,之后函数在调用的时候会复用变量之前的结果,并且变量只是作用于函数范围

相关文章