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;

上一篇: C++函數遞歸 下一篇: C++數組