全局变量、静态全局变量、静态局部变量和局部变量

     变量可以分为:全局变量、静态全局变量、静态局部变量和局部变量。
        按存储区域分,全局变量、静态全局变量和静态局部变量都存放在内存的静态存储区域,局部变量存放在内存的栈区。
        按作用域分,全局变量在整个工程文件内都有效;静态全局变量只在定义它的文件内有效;静态局部变量只在定义它的函数内有效,只是程序仅分配一次内存,函数返回后,该变量不会消失;局部变量在定义它的函数内有效,但是函数返回后失效。
        全局变量和静态变量如果没有手工初始化,则由编译器初始化为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

posted on 2012-08-29 15:44  Icnblog_Wan  阅读(616)  评论(0编辑  收藏  举报

导航