C++變量存儲類型

存儲類型是從變量的存在時間(即生存期)來劃分變量。變量的存儲類型可分爲靜態存儲方式和動態存儲方式兩大類。對於動態存儲變量,當程序運行到該變量處時才爲其分配存儲空間,當程序運行到該變量所在作用域的結束處時自動收回爲其分配的存儲空間,因此它的生存期爲所在作用域。在程序開始就執行就爲其分配存儲空間,直到程序結束時,才收回變量的存儲空間,這種變量稱爲靜態存儲空間,其生命週期爲整個程序執行的生命週期。


C++中,變量的存儲類型有自動類型、寄存器類型、靜態類型、外部類型四類。

  • 自動類型(auto):自動類型只能是局部類型的變量,屬於動態存儲類型。
  • 靜態存儲變量(static):static,即在程序運行的過程中靜態變量始終是佔用一個存儲空間。靜態變量只能在他的作用範圍內使用,使用局部靜態變量是爲了在下次調用該函數時,能使用上次調用後得到的該變量的值。
  • 寄存器類型變量(register):屬於動態存儲類型,編譯器不爲寄存器類型的變量分配內存空間,而是直接使用CPU的寄存器,以便提高對這類變量的存取速度。主要用於控制循環次數等不需要長期保存值的變量。
  • 外部類型變量(extern):外部類型變量必須 是全局變量,在C++中,有兩種情況下需要使用外部類型變量:1,在同一源程序在文件中,當在全局的定義之前使用該變量時,在使用前要對該變量進行外部類 型變量聲明。2,當程序有多個文件組成時,若在一個源文件中要引用在另一個源文件中定義的全局變量,在引用前必須對所引用的變量進行外部聲明。

另外,靜態全局變量只能供所在的文件使用。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章