在C语言中,static关键字具有两层含义。(1)如果是在函数外部使用,则表示的是文件的作用域。只能在本文件中使用。(2)若在函数内部使用static修饰局部变量,则表明该变量永久存在。即使在超出变量作用域后也不会被永久释放。变量第一次被赋值后初始化,其后值保持不变,直到重新赋值。
在C++类中,类被赋予了新的意义。用static修饰类成员变量。表示该变量不属于某个具体对象,所有对象共享同一份数据。
static必须在类外进行初始化。
#include <iostream>
class sta
{
public:
static int a;
static int GetA()
{
return a;
}
};
int sta::a = 45;
int main()
{
sta s;
std::cout << s.a << std::endl;
std::cout << s.GetA() << std::endl;
s.a = 68;
std::cout << s.GetA() << std::endl;
return 0;
}