1 在c语言中
1. static 修饰局部变量----改变生命周期
我们知道局部变量,在使用完之后会自动销毁, 它的生命周期从定义时开始,到程序执行完就结束,而经过static修饰以后,局部变量变为静态局部变量,它的生命周期延长,生命周期随整个程序,等整个程序执行完之后,才会动销毁。
2. static修饰全局变量----改变作用域
我们知道全局变量的作用域是面向整个工程,加上extern修饰之后,整个工程都可访问,而全局变量经过static修饰之后,其作用域被限定.只能被它所在的程序访问,不能被同一工程中的其他程序访问.
3. static修饰函数
经过static修饰过的函数,变为静态函数,类似于静态全局变量,有以下两个变化
1 该函数只能在其所在程序(文件)中被调用,不能被其他文件程序调用
2 不同的文件可以使用同名的静态函数,互不影响.
2 在c++中
1. 修饰类的成员变量
类的成员变量经过static修饰之后,变为静态成员变量,有以下特性
1 静态成员为所有类对象所共享,不属于某个具体的实例
2 静态成员必须在类外定义,定义时可不添加static关键字
2. 修饰类的成员函数
类的成员变量经过static修饰之后,成为静态成员函数,有以下特性
1 静态成员函数没有隐藏的this指针,不能访问任何非静态成员
2 非静态成员函数可以任意地访问静态成员函数和静态数据成员