static是常见的函数和变量(c++中类)的修饰符关键字,他主要用来控制变量的生命周期、作用域和储存方式。
1、修饰局部变量
a.储存区由栈变为静态变量区。
b.生命周期由局部变为全局。
c.作用域不变。
注意:static修饰的变量只执行初始化一次。
2、修饰全局变量
a.变量的储存区域在全局数据区的静态常量区。
b.变量的作用域由当前程序变为整个文件。
c.变量的生命周期不变。
3、修饰函数
a.函数的作用域由当前程序变为整个文件。
4、修饰类的成员变量
a.静态成员变量需在类中声明,在类外定义(const修饰除外)。
b.静态成员变量为所有类对象共享,并没有包含在具体的对象中。
c.静态成员变量的访问:类名::静态成员变量名 或 对象.静态成员变量名。
5、类的静态成员函数
a.静态成员函数没有this指针,不能访问非静态成员(变量、函数)。
b.静态成员函数不能调用非静态成员函数。而非静态成员函数可以调用静态成员函数。