得分点:关键宇、作用域、生命周期、共享数据;
标淮回答:static 是一个关键字,可以用来修饰局部变量、全局变量、成员变量、函数和成员方法。
主要作用有:限制数据的作用域、延长数据的生命周期、修饰成员可以被该类所有对象共享。
1.限制数据的作用域(隐藏) 所有没有加static 的全局变量和函数都具有全局可见性,其它源文件中也可以访问。被static 修饰的全局变量和函数只能在当前源文件中访问,其它源文件访问不了,利用这个特性可以在不同的文件中定义同名变量和同名函数,而不必担心命名冲突。
2. 延长数据的生命周期 普通的局部变量出了作用域就会释放,而静态变量存储在静态区,知道程序运行结束才会释放。3.静态成员被该类所有对象共享static 关键字可以修饰类中的成员变量和成员方法,被称为静态成员变量和静态成员方法,静态成员拥有一块单独的存储区,不管创建多少个该类的对象,所有对象都共享这一块内存。静态成员本质上属于类,可以通过类名直接访问。
加分回答:
1.静态变量默认初始化值为 0,如果没有显示初始化静态变量或者初始化为0的静态变量会存储在BSS段,而初显示初始化的静态变量存储在DATA段。
2. 静态成员函数中不能访问普通的成员变量,只能访问静态成员变量,并且在静态成员函数中没有 this 指针。