可以使用static说明自动变量,分为静态全局变量和静态局部变量
全局变量:在所有花括号之外声明的变量,在整个项目文件内都有效。使用static修饰的全局变量是静态全局变量,仅在该文件内有效。
局部变量:块内定义的变量,static修饰的静态局部变量,在整个运行期间都存在,仅在定义的块中有效。静态局部变量具有局部作用域,但却具有全局生存期
静态变量只执行一次初次化,如果未显示初始化,相当于初始化为0
【示例】自动变量和静态变量的定义和使用
#include <iostream>
using namespace std;
static int glos = 100;
void f()
{
int a=1;
static int fs =1;
cout <<"在f中: a(自动)=" a << " fs(静态)=" << fs " glos(静态)=" <<glos << endl;
a += 2:
fs += 2;
glos + 10;
cout <<"在: a(自动)" << a <<" fs(静态)=" << fs << " glos(静态)=" <<glos << endl;