1、C中的static
1)被static修饰的局部变量只会被初始化一次,每次调用时都会保持上一次的值
2)被static的全局变量只能在本文件内的函数调用,即作用域仅在本文件内
3)被static修饰的函数只能被本文件内的其他函数调用
2、C++中的static
2.1 静态数据成员
1)类中被static修饰的数据成员或函数成员被该类的所有对象共享
2)静态数据成员在内存中只存储一次,静态数据成员初始化应在类外进行,而且应在对象定义之前
eg:
clsss sample
{
int a;
static int b;
public:
static void display();
}
// 初始化
int sample::b = 1;
2.2 静态成员函数
1)定义:被static修饰的成员函数
静态的数据成员被类所有的对象共享,也就是说静态数据成员是属于类的。静态成员函数类似,也是属于类的
2)静态的成员函数只能访问静态数据成员,不能访问非静态数据成员,也不能访问非静态的成员函数,这是由于静态的成员函数没有this指针
3)静态成员函数的调用不需要调用对象名,如
sample::display();