1 静态全局变量
#include <iostream>
using namespace std;
static int a = 114514; //静态全局变量
int main()
{
cout<< a <<endl;
return 0;
}
静态全局变量与全局变量区别:
全局变量不但在本文件中可以被访问,在其他文件中同样可以访问。容易引发冲突。
静态全局变量只能在本文件访问。
2 静态局部变量
#include <iostream>
using namespace std;
void prtest()
{
static int a = 10;
cout << a++ << endl;
}
int main() {
prtest();
prtest();
prtest();
return 0;
}
打印结果:
10
11
12
区别:
静态局部变量的值会传递,空间也只分配一次。
3 静态成员变量
#include <iostream>
using namespace std;
class people
{
public:
static int age;
};
int main() {
people leo;
people nid;
leo.age=10;
nid.age=11;
cout << leo.age << endl; // 打印 11
return 0;
}
区别:
全部类共用一个静态成员变量
4 静态成员函数
#include <iostream>
using namespace std;
class people
{
private:
static int age; // 声明静态成员变量
public:
static void prage()//打印年龄
{
cout << age <<endl ;
}
};
int people :: age = 10; // 定义并初始化静态成员变量
int main() {
people :: prage();// 打印10;
return 0;
}
区别:
静态成员函数属于类而非对象,在定义对象前即可调用.(ps:静态成员函数只能调用同为静态的函数或者变量)