變數的儲存型別

2021-06-21 08:09:48 字數 931 閱讀 5154

儲存型別是從變數的存在時間(即生存期)來劃分變數。變數的儲存型別可分為靜態儲存方式和動態儲存方式。

對於動態儲存變數,當程式執行到該變數處時才為其分配儲存空間,當程式執行到該變數所在作用域的結束處時自動收回為其分配的儲存空間,因此它的生存期為所在作用域。

在程式開始就執行就為其分配儲存空間,直到程式結束時,才收回變數的儲存空間,這種變數稱為靜態儲存空間,其生命週期為整個程式執行的過程。

c++中,變數的儲存型別有自動型別、暫存器型別、靜態型別、外部型別等4種。

自動型別(outo):自動型別只能是區域性型別的變數。屬於動態儲存型別。

靜態儲存變數(static):static,即在程式執行的過程中靜態變數始終是占用乙個儲存空間。靜態變數只能在他的作用範圍內使用,使用區域性靜態變數是為了在下次呼叫該函式時,能使用上次呼叫後得到的該變數的值。

暫存器型別變數(register):屬於動態儲存型別,編譯器不為暫存器型別的變數分配記憶體空間,而是直接使用cpu的暫存器。以便提高對這類變數的訪問速度。主要用於控制迴圈次數等不需要長期儲存值的變數。

外部型別變數(extern):外部型別變數必須是全域性變數,在c++中,有兩種情況下需要使用外部型別變數:1,在同一源程式在檔案中,當在全域性的定義之前使用該變數時,在使用前要對該變數進行外部型別變數宣告。2,當程式有多個檔案組成時,若在乙個原始檔中要引用在另乙個原始檔中定義的全域性變數,在引用前必須對所引用的變數進行外部宣告。

說明:如果在某檔案中定義的全域性變數不想被其他檔案所呼叫,則必須將該變數宣告為靜態全域性變數,也就是說,靜態全域性變數只能供所在的檔案使用。

說明: extern只能用來宣告已定義的外部變數,而不能用於變數的定義。只要看到extern,就可以判定這是變數宣告,而不是定義變數的語句。

變數的儲存型別

曾巨集安,華清遠見嵌入式學院 講師。我們在程式中會經常定義一些變數來儲存和處理資料。從本質上看,變數代表了一段可操作的記憶體,也可以認為變數是記憶體的符號化表示。當程式中需要使用記憶體時,可以定義某種型別的變數。此時編譯器根據變數的資料型別分配一定大小的記憶體空間。程式就可以通過變數名來訪問對應的記...

變數的儲存型別

變數的儲存型別有兩種 動態和靜態,其中又有四種基本型別 auto,static,register,extern auto便是經常在函式中碰到的那些區域性變數,關鍵字auto可省略,定義register變數就是為了提高對資料的訪問速度,只有區域性自動變數或形參可以這麼定義,下面就static和exte...

變數的儲存型別

變數的儲存型別有4種,分別是static external register auto,對於每一種儲存型別,他們都有相應的使用方式和特點,下面就分別對這四種儲存型別介紹一下 1.static靜態型 可以修飾區域性變數 全域性變數 函式 a.存放在靜態區,靜態區的資料未初始化時,由系統給該變數賦初值,...