自动变量和静态变量的定义和使用(P109)

/*

    全局变量是指在所有花括号之外声明的变量,其作用域范围是全局可见的,即在整个项目文件内都有效。

    使用static修饰的全局变量是静态全局变量,其作用域有所限制,仅在定义该变量的源文件内有效,项目中的其他源文件中不能使用它。

     块内定义的变量是局部变量,从定义之处开始到本块结束处为止是局部变量的作用域。静态局部变量具有局部作用域,但却具有全局生存期。

*/

#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 << "在f中:a(自动)=" << a << " fs(静态)=" << fs << " glos(静态)=" << glos << endl;
}

int main()
{
static int ms = 10;
for (int i = 1; i <= 3; i++)
f();
cout << "ms=" << ms << endl;
cout << "glos=" << glos << endl;
system("pause");
return 0;
}

posted @ 2020-03-05 16:57  CollisionDimension  阅读(392)  评论(0)    收藏  举报