1. static 局部变量
1.1 把局部变量改变为静态变量后是改变了它的存储方式,也改变了它的生存期;
1.2 static局部变量只被初始化一次,下一次访问该变量,其保留上一次的结果值;
2. static全局变量
2.1 全局变量本身就是静态存储方式,静态全局变量当然也是静态存储方式。 这两者在存储方式上并无不同。
2.2 这两者的区别在于非静态全局变量的作用域是整个源程序,当一个源程序由多个源文件组成时,非静态的全局变量在各个源文件中都是有效的。而静态全局变量则限制了其作用域,即只在定义该变量的源文件内有效,在同一源程序的其它源文件中不能使用它。由于静态全局变量的作用域局限于一个源文件内,只能为该源文件内的函数公用,因此可以避免在其它源文件中引起错误。
3. static函数
3.1 static函数与普通函数作用域不同,static函数只在当前源文件中说明和定义。
4. (C++) static 作为类中的成员变量