C/C++语言static关键字的作用

全局静态变量

在全局变量前添加static变成全局静态变量,在整个程序运行期间一直存在

内存中的位置:静态存储区,在整个程序运行中一直存在

初始化:未初始化的全局静态变量会被自动初始为 0

作用域: 全局静态变量在声明他的文件之外不可见,也就是说从申明他到文件结尾是他的作用域

局部静态变量

给局部静态变量添加static后,就变成一个局部静态变量

内存中的位置:静态存储区

初始化:未初始化会自动被初始化为0

作用域:仍然是局部作用域,当定义它的函数或者语句结束的时候,作用域结束,但是并没有销毁,仍然在内存中,只不过只能到该函数时才能去访问他

静态函数

函数前面加static表示是个静态函数,就和全局静态变量一样只在加了static中可以看到,不能被其他文件用

类静态成员

实现多个类的成员数据共享,供所有对象共同使用

类的静态函数:

静态函数和静态成员成员一样,他们都不是对象中的成员,静态成员的引用不需要用对象名。

在静态成员函数的实现中不能直接引用类中说明的非静态成员,可以引用类中说明的静态成员。如果要用非静态成员,可以通过对象来引用