请问C++语言里静态变量和全局变量有什么区别?谢谢
的有关信息介绍如下:1. 全局变量的作用域是整个项目,它只需要在一个源文件中定义就可以作用于所有的源文件,其它不包括全局变量定义的文件需要用extern关键字再次声明这个全局变量。 2. 全局变量、静态全局变量、静态局部变量都是在静态存储区(全局数据区)中分配空间的,而局部变量是在栈上分配空间的。 3. 全局变量、静态变量的生命期和程序生命期是一样的,在程序结束之后操作系统会回收空间。 4. 全局变量和静态变量都是保存在静态存储区中,生命期和程序一样,但是不同的是全局变量的作用域是整个项目,而静态全局变量是当前程序文件,静态局部变量则是当前函数体内。 全局变量和静态全局变量、静态局部变量默认值都是0,也就是在没有初始化变量值的时候默认为0。 5. 静态变量包含静态局部变量和静态全局变量。 静态局部变量具有局部作用域只对定义自己的函数可见,只被初始化一次,自从初始化一次之后直到程序运行期间一直都在。 静态全局变量具有全局作用域作用于定义它的程序文件但是不能作用于项目里的其它文件,这一点和全局变量不同。静态全局变量可以被多次初始化。 6. 把局部变量改变为静态变量之后是改变了它的存储方式和生命期。 把全局变量改变为静态变量之后是改变了它的作用域,限制了使用范围7. 看以下几个例子 //测试静态局部变量int Fun(void){ //声明一个静态局部变量 static int num = 0; ++num; return num;}for(int i = 0; i < 10; i++){ cout<