1. 程式人生 > >c++ 變數儲存型別

c++ 變數儲存型別

extern 儲存型別 :

只宣告而不定義變數,變數的宣告只是告訴編輯器變數的名稱和資料型別;變數的定義是給變數分配儲存區域;優點就是可以在多個檔案裡面共享一個全域性變數,

static 儲存型別:

static指的是靜態變數(又叫永續性變數);靜態變數分為兩種,第一種是區域性靜態變數在函式內定義的變數,該變數被分配一個持久的儲存空間,當函式呼叫的時候,變數不會被釋放,依然保留其值,下一次呼叫的時候,依然可以使用這個值,類似於全域性變數,但是他只是侷限於當前的函式,全域性靜態變數只是作用於當前檔案,不能被其他檔案使用extern呼叫,所以全域性靜態變數相當於是半個全域性變數;

register儲存型別:

用register定義的變數將被放置在cpu的暫存器中,優點就是訪問速度快,但是他只能作用於區域性變數或者作為函式的引數,而不能定義全域性的register變數。

anto儲存型別:

變數的儲存方式有兩種,即靜態儲存和動態儲存,全域性變數,靜態變數均屬於靜態儲存,而普通的區域性變數屬於動態儲存,anto關鍵字表示變數將被動態儲存,預設的情況區域性變數都是auto變數,定義一個全域性的auto變數是非法的,因為全域性變數屬於靜態儲存。