全局变量

例子

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