C++中的static变量与其他变量的不同之处在于它们的存储区域和生命周期。
存储区域:
生命周期:
下面是一个简单的例子,展示了静态变量和其他变量的区别:
#include <iostream>
void myFunction() {
static int staticVar = 0; // 静态变量
staticVar++;
std::cout << "Static variable: " << staticVar << std::endl;
}
int main() {
myFunction(); // 输出:Static variable: 1
myFunction(); // 输出:Static variable: 2
myFunction(); // 输出:Static variable: 3
int localVar = 0; // 非静态变量
localVar++;
std::cout << "Local variable: " << localVar << std::endl;
return 0;
}
在这个例子中,staticVar
是一个静态变量,它在myFunction
中被递增。每次调用myFunction
时,staticVar
的值都会累加。而localVar
是一个非静态局部变量,它在main
函数中被递增。当myFunction
返回时,localVar
所占用的内存空间会被释放。