c++ static作用
静态局部变量等价于全局变量。
void func() {
static int a = 0;
a += 1;
cout<<a<<endl;
}
int main(int argc, const char * argv[]) {
// insert code here...
for(int i = 0; i < 3; ++ i) func();
return 0;
}
输出的结果为123,也就是说变量a没有随着函数的反复调用而被初始化。
c++中将静态变量存放到和全局变量相同的位置,这个位置不会被初始化。