C++儲存類


儲存類用於定義C++程式中變數和/或函式的生命週期和可見性。

壽命是指變數保持活動的時間段,可見性是指可存取變數的程式的模組。

有五種型別的儲存類,可以在C++程式中使用

  • 自動(Automatic)
  • 暫存器(Register)
  • 靜態(Static)
  • 外部(External)
  • 可變(Mutable)
儲存類 關鍵字 生命週期 可見性 初始值
自動 auto 函式塊 區域性 垃圾
暫存器 register 函式塊 區域性 垃圾
可變 mutable 區域性 垃圾
靜態 static 整個程式 全域性
外部 extern 整個程式 區域性

自動儲存類

它是所有區域性變數的預設儲存類。 auto關鍵字自動應用於所有區域性變數。

{   
    auto int y;  
    float y = 3.45;  
}

上面的例子定義了兩個具有相同儲存類的變數,auto只能在函式中使用。

註冊儲存類

暫存器變數在暫存器中分配儲存器而不是RAM。 其大小與暫存器大小相同。 它比其他變數具有更快的存取速度。
建議僅使用暫存器變數進行快速存取,例如:在計數器中。

注意:我們不能得到暫存器變數的地址。

register int counter=0;

靜態儲存類

靜態變數只初始化一次,直到程式結束。 它保留可在多個函式之間呼叫的值。
靜態變數由編譯器提供的一個預設值: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;