静态变量(static)

函数中定义的局部变量在函数作用域结束时消失。如果想使局部变量的值在程序的整个生命周期里仍然存在,可以将函数的局部变量定义为static。static变量的初始化只在函数第一次调用时执行,函数调用之间变量的值保持不变。

与全局变量不同的是,static变量的优点是在函数范围之外,它是不可用的。下面的代码中,i的作用域只在Func函数内,但是生命周期是整个应用程序内。

void Func()
{
    static int i = 0;
    cout<<"i = "<<i++<<endl;
}

如果将static应用于函数或者函数之外的变量时,那么意义是在文件外部不可以使用这个名字,即使在外部文件通过extern来声明函数或者变量,也是无法使用的

posted @ 2012-09-15 22:48  HelloWorld.Michael  阅读(506)  评论(0)    收藏  举报