全局变量、静态全局变量、静态局部变量和局部变量
2012-08-29 15:44
375 查看
变量可以分为:全局变量、静态全局变量、静态局部变量和局部变量。
按存储区域分,全局变量、静态全局变量和静态局部变量都存放在内存的静态存储区域,局部变量存放在内存的栈区。
按作用域分,全局变量在整个工程文件内都有效;静态全局变量只在定义它的文件内有效;静态局部变量只在定义它的函数内有效,只是程序仅分配一次内存,函数返回后,该变量不会消失;局部变量在定义它的函数内有效,但是函数返回后失效。
全局变量和静态变量如果没有手工初始化,则由编译器初始化为0。局部变量的值不可知。
例子:
运行结果:
5
20
1
2
按存储区域分,全局变量、静态全局变量和静态局部变量都存放在内存的静态存储区域,局部变量存放在内存的栈区。
按作用域分,全局变量在整个工程文件内都有效;静态全局变量只在定义它的文件内有效;静态局部变量只在定义它的函数内有效,只是程序仅分配一次内存,函数返回后,该变量不会消失;局部变量在定义它的函数内有效,但是函数返回后失效。
全局变量和静态变量如果没有手工初始化,则由编译器初始化为0。局部变量的值不可知。
例子:
//test.cpp #include <iostream.h> extern int a;//变量声明,不是定义 static int b=5; void func1() { cout<<b<<endl<<a<<endl;//结果为5 } //main.cpp int a; int b=10; void func2() { static int i; i++; cout<<i<<endl; } void func1(); void main() { a=20; func1(); func2(); func2(); }
运行结果:
5
20
1
2
相关文章推荐
- C|C++中的静态全局变量,静态局部变量,全局变量,局部变量的区别
- C|C++中的静态全局变量,静态局部变量,全局变量,局部变量的区别
- C|C++中的静态全局变量,静态局部变量,全局变量,局部变量的区别
- (转)C|C++中的静态全局变量,静态局部变量,全局变量,局部变量的区别
- 关于局部变量、静态局部变量、全局变量、静态全局变量
- 全局变量、局部变量、静态局部变量、静态全局变量、外部变量、外部函数和静态函数
- C/C++中局部变量,静态局部变量,全局变量,静态全局变量的异同
- C|C++中的静态全局变量,静态局部变量,全局变量,局部变量的区别
- 全局变量、静态全局变量、局部变量和静态局部变量
- 全局变量,静态全局变量,局部变量,静态局部变量区别
- 全局变量、静态全局变量、静态局部变量和局部变量的区别
- 全局变量、静态全局变量、静态局部变量和局部变量的区别
- C|C++中的静态全局变量,静态局部变量,全局变量,局部变量的区别
- C/C++——全局变量、局部变量、静态全局变量和静态局部变量
- C|C++中的静态全局变量,静态局部变量,全局变量,局部变量的区别
- C|C++中的静态全局变量,静态局部变量,全局变量,局部变量的区别
- C|C++中的静态全局变量,静态局部变量,全局变量,局部变量的区别
- 全局变量、静态全局变量、静态局部变量、局部变量
- 全局变量、静态全局变量、静态局部变量和局部变量的区别
- 全局变量,局部变量,静态全局变量,静态局部变量