存储类用于定义C++程序中变量或函数的生存期和可见性。
生存期是指变量保持活动状态的时间段,可见性是指可以访问变量的程序模块。
有五种类型的存储类,可以在C++程序中使用
存储类 | 关键字 | 生命同期 | 可见度 | 初始值 |
---|---|---|---|---|
Automatic | auto | 函数块 | 本地(Local) | 未知 |
Register | register | 函数块 | 本地(Local) | 未知 |
Mutable | mutable | Class类 | 本地(Local) | 未知 |
External | extern | 整个程序 | 全局(Global) | 零 |
Static | static | 整个程序 | 本地(Local) | 零 |
它是所有局部变量的默认存储类。 auto关键字自动应用于所有局部变量。
{ auto int y; float y = 3.45; }
上面的示例定义了两个具有相同存储类的变量,auto只能在函数内使用。
寄存器变量比RAM分配寄存器中的内存。其大小与寄存器大小相同。它具有比其他变量更快的访问权限。
建议仅将寄存器变量用于快速访问,例如在计数器中。
注意:我们无法获取寄存器变量的地址。
register int counter=0;
静态变量仅初始化一次,并且一直存在到程序结束。它在多个函数调用之间保留其值。
静态变量的默认值为0,由编译器提供。
链接:https://www.learnfk.comhttps://www.learnfk.com/c++/cpp-storage-classes.html
来源:LearnFk无涯教程网
#include <iostream> using namespace std; void func() { static int i=0; //静态变量 int j=0; //局部变量 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;
祝学习愉快!(内容编辑有误?请选中要编辑内容 -> 右键 -> 修改 -> 提交!)