static
static修饰全局变量或者局部变量 (1)将全局变量或局部变量变为静态全局变量或者静态局部变量,生命周期是整个程序运行周期,存储在data段。 (2)所有静态变量只初始化一次,未初始化的静态变量默认初始化为0。 (3)静态局部变量只在本文件可见,外部文件无法访问;静态局部变量只在定义的作用域可见。
static修饰函数 用static修饰的函数,无法被两个文件同时使用。
static修饰成员变量和成员函数 (1)static修饰的成员变量不在对象模型当中,存储在data段。所有对象共享次成员变量,可以看作是类成员。必须在类外初始化且只能初始化一次。 (2)static修饰的成员函数必须在类内声明,可以在类内或类外定义,该成员函数内部没有this指针,所以不能访问非静态成员变量或成员函数。但是非静态成员函数可以访问静态成员变量或者成员函数。