本文概述
- 自动存储类
- 注册存储类别
- 静态存储类
- 外部存储类别
生存期是指变量保持活动状态的时间段, 可见性是指可以访问变量的程序模块。
有五种类型的存储类, 可以在C ++程序中使用
- 自动
- 寄存器
- 静态的
- 外部
- 可变的
储存类别 | 关键词 | 一生 | 能见度 | 初始值 |
---|---|---|---|---|
Automatic | auto | 功能块 | Local | Garbage |
Register | register | 功能块 | Local | Garbage |
Mutable | mutable | Class | Local | Garbage |
External | extern | 整个程序 | Global | Zero |
Static | static | 整个程序 | Local | Zero |
{
auto int y;
float y = 3.45;
}
上面的示例定义了两个具有相同存储类的变量, auto只能在函数内使用。
注册存储类别寄存器变量比RAM在寄存器中分配内存。其大小与寄存器大小相同。它具有比其他变量更快的访问权限。
建议仅将寄存器变量用于快速访问, 例如在计数器中。
注意:我们无法获取寄存器变量的地址。
register int counter=0;
静态存储类静态变量仅初始化一次, 并且一直存在到程序结束。它在多个函数调用之间保留其值。
【C++存储类用法】静态变量的默认值为0, 由编译器提供。
#include <
iostream>
using namespace std;
void func() {
static int i=0;
//static variable
int j=0;
//local variable
i++;
j++;
cout<
<
"i=" <
<
i<
<
" and j=" <
<
j<
<
endl;
}
int main()
{
func();
func();
func();
}
输出:
i= 1 and j= 1
i= 2 and j= 1
i= 3 and j= 1
外部存储类别extern变量对所有程序都是可见的。如果两个或多个文件共享相同的变量或函数, 则使用它。
extern int counter=0;