C++ Storage Classes 存储类

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

生命周期是指变量保持活动的时间段,可见性是指可以访问变量的程序模块。

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

  1. Automatic

  2. Register

  3. Static

  4. External

  5. Mutable

存储类关键词寿命能见度初始值
AutomaticautoFunction BlockLocalGarbage
RegisterregisterFunction BlockLocalGarbage
MutablemutableClassLocalGarbage
ExternalexternWhole ProgramGlobalZero
StaticstaticWhole ProgramLocalZero



自动存储类

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

例子 (Example)

{   
auto int y;  
float y = 3.45;  
}

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


注册存储类

register 变量在寄存器中分配内存而不是 RAM。它的大小与寄存器大小相同。它比其他变量具有更快的访问速度。

建议仅将寄存器变量用于快速访问,例如在计数器中。

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

例子 (Example)

register int counter=0;

静态存储类

静态变量只初始化一次并且一直存在到程序结束。它在多个函数调用之间保留其值。

静态变量具有编译器提供的默认值 0。

例子 (Example)

#include <iostream>  
using namespace std;  
void func() {    
   static int i=0; //静态变量    
   int j=0; //局部变量    
   i++;    
   j++;    
   cout<<"i=" << i<<" 与 j=" <<j<<endl;    
}    
int main()  
{  
 func();    
 func();    
 func();    
}

输出:

i= 1 与 j= 1
i= 2 与 j= 1
i= 3 与 j= 1

外部存储类

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

例子 (Example)

extern int counter=0;


上一主题 C++ Recursion 递归 下一主题 没有了
  • 使用社交账号登录,本站支持
全部评论(0)