标签:
C++的静态变量分为静态全局变量和静态局部变量。
静态变量存放在静态代码区,是类级别的成员,优先于该类的任何对象的存在而存在,被该类的所有对象共享,所以类的静态变量要在类外初始化。
静态全局变量有全局作用域,但生命期是单个源文件,且静态全局变量必须在main()函数执行前被初始化;
静态局部变量有跟普通变量一样有局部作用域,但相比普通变量有全局生命期,即块作用域内静态局部变量创建并初始化后,下次访问此块作用域该静态变量保留上次访问遗留的值,并不会像普通变量一样在栈内重新创建变量。同时注意的是,在函数体内声明一个静态变量后,下次调用该函数时并不用担心重复声明的问题,因为这已被编译器做过优化,编译器的这一技术被称为“命名粉碎规则”。
标签:
原文地址:http://www.cnblogs.com/xiaokaka/p/5471185.html