C++ 存储类

存储类用于定义变量和/或函数在 C++ 程序中的生存期和可见性。

生存期是指变量保持活动状态的时间段,可见性是指变量在程序中可以访问的模块。

在 C++ 程序中,有五种类型的存储类可以使用:

  1. 自动(Automatic)
  2. 寄存器(Register)
  3. 静态(Static)
  4. 外部(External)
  5. 可变的(Mutable)
存储类关键字生存期可见性初始值
自动(Automatic)auto 函数块(Function Block) 局部(Local) 垃圾值(Garbage) 寄存器
垃圾值(Register)register 函数块(Function Block) 局部(Local) 垃圾值(Garbage) 可变的
(Mutable)mutable 类(Class) 局部(Local) 垃圾值(Garbage) 外部
(External)extern 整个程序(Whole Program) 全局(Global)0
静态(Static)static 整个程序(Whole Program) 局部(Local)0

自动(Automatic)存储类

它是所有局部变量的默认存储类。auto 关键字会自动应用于所有局部变量。

{
auto int y;
float y = 3.45;
} 

上面的示例定义了两个具有相同存储类的变量,auto 只能在函数内部使用。

寄存器(Register)存储类

寄存器变量在寄存器中分配内存,而不是在 RAM 中。

它的大小与寄存器大小相同。它比其他变量具有更快的访问速度。建议仅将寄存器变量用于快速访问,例如计数器。

注意:我们无法获取寄存器变量的地址。

register int counter=0; 

静态(Static)存储类

静态变量仅初始化一次,并在程序的结束之前存在。它在多次函数调用之间保留其值。

静态变量的默认值为 0,由编译器提供。

\#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 

外部(External)存储类

外部变量对所有程序可见。如果两个或多个文件共享相同的变量或函数,则使用外部变量。

extern int counter=0;

标签: C++语言, C++语言教程, C++语言技术, C++语言学习, C++语言学习教程, C++语言下载, C++语言开发, C++语言入门教程, C++语言进阶教程, C++语言高级教程, C++语言面试题, C++语言笔试题