Static关键字
用法
C/C++中static
关键字共有五种用法:
一. 类静态成员变量
- 为所有类的实例共有。
- 存储于全局数据区,定义时分配存储空间。
- 只能在类中声明,在类外进行定义和初始化,默认初始化为0。
二. 类静态成员函数
- 静态成员函数只能访问静态成员变量和静态成员函数。
- 没有this指针,通过
<类名>::<函数名>
访问,也可通过.
和->
访问。
三. 静态全局变量
- 在全局数据区分配。
- 只在本文件内可见,为
internal
属性。
四. 静态局部变量
- 在全局数据区分配。
- 执行声明时初始化,如果没有显式初始化则初始化为0,再次调用时不初始化。
五. 静态函数
只在本文件内可见。
C/C++内存分类
全局数据区/静态数据区:存储全局变量和静态变量,程序结束后释放。
栈:存储局部变量,参数、返回值。
堆:动态分配的内存。
文字常量区:存储常量字符串,程序结束后释放。
代码区:存储二进制代码。