static 修饰变量

static 修饰的变量只会在第一次运行的时候做一次初始化,后续即使多次调用也不会再重新初始化。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
void func(int value) {
static int counter = value;
std::cout << "func(" << value << ").counter = " << counter << "\n";
counter++;
}

int main() {
func(5);
func(7);
func(6);
func(10);
func(20);
}

/*
func(5).counter = 5
func(7).counter = 6
func(6).counter = 7
func(10).counter = 8
func(20).counter = 9
*/

static 修饰函数