
_START_ARTICLE_
全局变量
_START_SECTION_
例子
_START_PARAGRAPH_
C++语言中全局变量的例子：_NEWLINE_#include <cstdio>int global = 3; // 定义全局变量globalstatic void ChangeGlobal(void){_NEWLINE_   global = 5; // 从函数中引用全局变量}int main(void){_NEWLINE_   std::printf("%d\n", global); // 还是从函数中引用全局变量_NEWLINE_   ChangeGlobal();_NEWLINE_   std::printf("%d\n", global);}_NEWLINE_因为变量是全局的，所以就没有必要为了在main 以外的函数中使用而作为参数传递。全局变量属于程序中的所有函数。_NEWLINE_输出应该是：_NEWLINE_3_NEWLINE_5_NEWLINE_全局变量的使用使得软件更加难以阅读和理解。因为程序中任何地方的代码都可能随时修改这个变量的值，于是理解这个变量可能就意味着要理解整个程序的很大部分。_NEWLINE_某些语言（比如C#和Java）中没有全局变量。Java 中，所有非局部变量都是类的字段，于是所有变量就都在类和方法的作用域中了。_NEWLINE_需要指出的是，C语言不存在真正意义上的“全局变量”。被习惯性误称为“全局变量”的，一般是文件作用域对象。ANSI C/ISO C也没有这种提法。_NEWLINE_C语言中所谓“全局变量”的例子：_NEWLINE_/* 注意这个例子是有问题的。   global 并不是全局变量，因为它并不是“所有作用域均可见”。   global 是C语言中的文件作用域变量，作用域从声明开始一直到文件末尾。*/#include <stdio.h>int global = 3; /* 这是“全局变量” */static void ChangeGlobal(void){_NEWLINE_   global = 5; /* 从函数中引用“全局变量” */}int main(void){_NEWLINE_   printf("%d\n", global); /* 还是从函数中引用“全局变量” */_NEWLINE_   ChangeGlobal();_NEWLINE_   printf("%d\n", global);_NEWLINE_   return 0;}