静态变量在函数内用static声明,程序运行期间仅初始化一次,值在函数调用间保持;普通局部变量每次调用都会重新创建和销毁。

在C++中,静态变量(static variable)可以在函数内部使用,其特点是:该变量在程序的整个运行期间只初始化一次,且它的值在多次函数调用之间保持不变。这与普通局部变量不同,普通局部变量在每次函数调用时都会重新创建和销毁。
函数中使用静态变量的方法
在函数内部声明变量时,前面加上 static 关键字即可将其定义为静态局部变量。例如:
void counter() {
static int count = 0; // 静态局部变量
count++;
std::cout << "调用次数: " << count << std::endl;
}
每次调用 counter() 函数时,count 不会重新初始化为0,而是保留上次调用结束时的值。第一次调用输出1,第二次输出2,依此类推。
静态变量的特点
- 生命周期长:静态变量在程序启动时分配内存,在程序结束时才释放,即使函数执行完毕也不会被销毁。
- 仅初始化一次:即使函数被多次调用,静态变量的初始化语句只执行一次。
- 作用域受限:静态变量只能在定义它的函数内部访问,不能被其他函数直接使用。
典型应用场景
静态变量常用于需要记录状态或累计数据的场景,比如:
动态WEB网站中的PHP和MySQL详细反映实际程序的需求,仔细地探讨外部数据的验证(例如信用卡卡号的格式)、用户登录以及如何使用模板建立网页的标准外观。动态WEB网站中的PHP和MySQL的内容不仅仅是这些。书中还提到如何串联JavaScript与PHP让用户操作时更快、更方便。还有正确处理用户输入错误的方法,让网站看起来更专业。另外还引入大量来自PEAR外挂函数库的强大功能,对常用的、强大的包
立即学习“C++免费学习笔记(深入)”;
- 统计某个函数被调用了多少次
- 生成唯一ID(如自增编号)
- 缓存上一次的计算结果,避免重复运算
int getNextId() {
static int id = 1000;
return id++;
}
每次调用 getNextId() 都会返回递增的ID,从1001开始。
基本上就这些。只要记住:加了 static 的局部变量会“记住”它的值,适合用来保存跨调用的状态信息。不复杂但容易忽略细节,比如初始化只执行一次。正确使用能简化代码逻辑。










