cpp static变量
时间: 2023-12-17 14:09:19 浏览: 24
在C++中,`static`关键字可以用来定义静态变量。静态变量可以具有以下特点:
1. 静态变量在程序开始时被初始化,只会被初始化一次,直到程序结束时才会被销毁;
2. 静态变量在声明时就已经分配了内存,存储在静态数据区,不会随着函数的调用而分配和销毁;
3. 静态变量的作用域与普通变量一样,可以是全局的也可以是局部的,但是对于局部变量而言,静态变量只会在函数第一次被调用时初始化一次,之后每次调用函数时都会使用同一块内存。
以下是一个静态变量的示例代码:
```cpp
#include <iostream>
void foo() {
static int count = 0; // 静态变量count
count++;
std::cout << "foo has been called " << count << " times." << std::endl;
}
int main() {
for (int i = 0; i < 5; i++) {
foo();
}
return 0;
}
```
这个程序会输出:
```
foo has been called 1 times.
foo has been called 2 times.
foo has been called 3 times.
foo has been called 4 times.
foo has been called 5 times.
```
在这个例子中,我们定义了一个静态变量`count`,用于记录函数`foo`被调用的次数。每次调用函数`foo`时,静态变量`count`会自增,并输出当前的调用次数。由于`count`是静态变量,所以它只会被初始化一次,而不是每次调用函数时都会重新初始化。