局部变量在作用域结束时会消失。
如果想让局部变量在整个生命期里存在,需要定义为静态的 static,并给一个初始值
如果想让局部变量在整个生命期里存在,需要定义为静态的 static,并给一个初始值
static变量的有点是在函数范围之外是不可用的
C03:Static.cpp
// From Thinking in C++, 2nd Edition
// Available at http://www.BruceEckel.com
// (c) Bruce Eckel 2000
// Copyright notice in Copyright.txt
// Using a static variable in a function
#include <iostream>
using namespace std;
void func() {
static int i = 0;
cout << "i = " << ++i << endl;
}
int main() {
for(int x = 0; x < 10; x++)
func();
getchar();
} ///:~
如果不用static 打印出来的都是1
作用域之外不能访问static
输出
i = 1
i = 2
i = 3
i = 4
i = 5
i = 6
i = 7
i = 8
i = 9
i = 10