- static修饰局部变量(静态局部变量)。作用:延长局部变量的生命周期。局部变量:inside function body。
#include
using namespace std;
int fun() {
static int var = 0;
var += 1;
return var;
}
int main() {
for (int i = 0; i < 10; i++)
cout << fun() << " ";
cout << endl;
return 0;
}
运行结果(静态局部变量)
1 2 3 4 5 6 7 8 9 10
#include
using namespace std;
int fun() {
static int var;
var += 1;
return var;
}
int main() {
for (int i = 0; i < 10; i++)
cout << fun() << " ";
cout << endl;
return 0;
}
运行结果(静态局部变量)
1 2 3 4 5 6 7 8 9 10
#include
using namespace std;
int fun() {
int var = 0;
var += 1;
return var;
}
int main() {
for (int i = 0; i < 10; i++)
cout << fun() << " ";
cout << endl;
return 0;
}
运行结果(非静态局部变量)
1 1 1 1 1 1 1 1 1
- static修饰全局变量(静态全局变量)。作用:文件隔离。全局变量:outside function body。
- static修饰函数(静态函数)。作用:文件隔离。
- static修饰成员变量(静态成员变量)。本质:类的所有对象共享。
- static修饰成员函数(静态成员函数)。本质:类的所有对象共享。