首页 > 文章列表 > c语言中static修饰局部静态变量

c语言中static修饰局部静态变量

c语言 static
189 2022-08-06

1、作用域仅限于函数内部, 离开该函数后就是无效的,**生命周期**直到程序结束。

2、不管是普通局部变量还是 static 修饰的静态局部变量,作用域仅仅只在函数内部有效。

实例

#include <stdio.h>
 
 
int func1()
{
    int x = 5;
    x++;
    printf("函数func1 局部变量 x = %d\n",x);
    return 0;
}
 
int func2()
{
    static int x = 10;
    x++;
    printf("函数func2 静态局部变量 x = %d\n",x);
    return 0;
}
 
int main()
{
 
    for(int i = 0;i<10;i++)
    {
       func1();
       func2();
    }
    return 0;
}
/*
输出:
 
函数func1 局部变量 x = 6
函数func2 静态局部变量 x = 11
函数func1 局部变量 x = 6
函数func2 静态局部变量 x = 12
函数func1 局部变量 x = 6
函数func2 静态局部变量 x = 13
函数func1 局部变量 x = 6
函数func2 静态局部变量 x = 14
函数func1 局部变量 x = 6
函数func2 静态局部变量 x = 15
函数func1 局部变量 x = 6
函数func2 静态局部变量 x = 16
函数func1 局部变量 x = 6
函数func2 静态局部变量 x = 17
函数func1 局部变量 x = 6
函数func2 静态局部变量 x = 18
函数func1 局部变量 x = 6
函数func2 静态局部变量 x = 19
函数func1 局部变量 x = 6
函数func2 静态局部变量 x = 20
*/

本教程操作环境:windows7系统、C11版,DELL G3电脑。