static关键字涉及到本地化数据及代码范围,主要有以下的用途:
(1) 函数内static变量的作用域为该函数体本身,不同于auto变量,该变量的内存只能分配一次,因此其值在下次调用时仍然保留上次的结果;
(2) 模块内的static全局变量的作用域为该模块本身,不能被其他模块的函数访问;
(3) 模块内的static函数的作用域为该模块本身,只可被本模块的函数访问,其使用范围被限制在声明它的模块内;
(4) 在类中的static成员变量属于整个类所拥有,对类的所有对象而言只有一份拷贝;
(5) 在类中的static成员函数属于整个类所拥有,这个成员函数不接受this指针,而只能访问类的static成员变量。