### 全局作用域

全局作用域是指函数、变量、常量等对象的作用范围在整个应用程序，这些对象在整个应用程序中都是可用的。在全局作用域内定义的对象被称之为全局对象。例如，在全局作用域内定义的函数被称为全局函数，在全局作用域内定义的变量称之为全局变量。全局对象的生命期开始于应用程序的运行，结束于应用程序的退出。

下面以定义全局变量为例介绍全局对象的定义。全局变量的定义与局部变量的定义相同，只是在函数外部进行定义。例如：

int VAR = 10; //定义全局变量

对于全局变量来说，如果没有进行初始化，其存储区为 0。因此，对于整型的全局变量，如果没有进行初始化，其值为 0。但是，对于局部变量来说，如果没有进行初始化或赋值，其值是不可预见的。此外，在整个应用程序中，一个全局变量只能定义一次，不能重名。

说明：如果在函数内部定义了一个与全局变量同名的局部变量，则全局变量被隐藏，如果需要访问全局变量，需要使用域运算符。

例如，使用域运算符访问被隐藏的全局变量。

int VAR = 10; //定义全局变量

int main(int argc, char* argv[])

{

int VAR = 5; //定义局部变量

printf("%d\n",VAR); //输出局部变量

printf("%d\n",::VAR); //访问全局变量

return 0;

}

执行上述代码，效果如图 1 所示。

图 1 访问隐藏的全局变量