在C++中,静态持续变量(static duration variable)指的是那些在程序的整个生命周期内存在且其存储空间在程序开始时分配,并在程序结束时释放的变量。这些变量在定义时使用了关键字static
。根据其作用域的不同,可以分为两种情况:
-
局部静态变量(Local Static Variables):这些变量在函数内部声明,并且仅在第一次调用函数时初始化。它们在整个程序运行期间保持其值不变,直到程序结束。例如:
void func() { static int count = 0; count++; std::cout << count << std::endl; }
每次调用
func
时,count
的值都会保留上一次调用后的值。 -
全局静态变量(Global Static Variables):这些变量在文件作用域(即文件内的任何地方都可以访问)内声明,但不能被其他文件访问。它们在程序开始时分配存储空间,并在程序结束时释放。例如:
static int globalCount = 0; void increment() { globalCount++; }
globalCount
变量只能在定义它的文件中访问,不能在其他文件中访问。
静态持续变量的主要特点是它们的生命周期贯穿程序的整个运行期间,并且在内存中保留其值。