C 語言中變數的儲存類別

2021-06-16 11:59:05 字數 879 閱讀 5637

在說明c++語言中變數的儲存類別之前,我們需要搞明白生存期和作用域兩個概念。生存期和作用域是指從時間和空間兩個角度去描述變數的特性。不同的變數儲存類別直接導致了變數的生存期不同,通俗的說,也就是變數存在的時間不同。

靜態儲存變數一般在變數定義之初就為變數分配了固定的儲存單元,這些儲存單元直到程式結束的時候才會被釋放,而它們一般是存放在靜態儲存區的,如全域性變數等;動態儲存變數只有在程式執行的過程中用到時,程式才會為其分配儲存單元,一旦使用完畢後就會立即釋放該儲存單元,而此類變數通常會被存放在動態儲存區,如形式引數等。

在c++語言中存在4種類別的儲存變數。

auto變數:

這是c++語言中預設的儲存類別,當然,這種變數可以省去關鍵字auto。

自動變數的特點如下:

1、自動變數的作用域僅限於定義改變量的個體內;

2、自動變數屬於動態儲存方式,變數分配的記憶體是在棧中;

3、自動變數的生存期和作用域都侷限在定義它的個體內,因此,不同的個體中是允許使用同名的變數的。

static變數:

在宣告變數之前使用關鍵字static,則表示改變量被定義為靜態變數。

靜態變數屬於靜態儲存方式,特點如下:

1、生存期為整個源程式;

2、作用域與auto變數相同,在函式內定義,則在函式內使用;

3、編譯器會為靜態區域性變數賦予0值。

register變數:

改變量將區域性變數的值存放在cpu中的暫存器中,使用時無需訪問記憶體,直接讀寫暫存器即可。

暫存器變數屬於動態儲存方式。

此外,編譯程式會自動決定哪個變數使用暫存器儲存。register起到了優化程式的作用。

extern變數:

當使用其他原始檔的全域性變數時,只要在本原始檔中使用extern關鍵字來宣告這個變數即可。

C語言中變數儲存類別

c語言根據變數的生存週期來劃分,可以分為靜態儲存方式和動態儲存方式。靜態儲存方式 是指在程式執行期間分配固定的儲存空間的方式。靜態儲存區中存放了在整個程式執行過程中都存在的變數,如全域性變數。動態儲存方式 是指在程式執行期間根據需要進行動態的分配儲存空間的方式。動態儲存區中存放的變數是根據程式執行的...

C語言中變數的儲存類別及其儲存方式

一 auto auto 自動變數,動態儲存方式 auto是c語言中區域性變數的預設屬性 編譯器預設所有的區域性變數 auo變數儲存在程式的棧中,預設屬性 特點 1 自動變數僅適合於區域性變數,其作用域僅限於定義該變數的個體內。在函式定義中定義的自動變數,只在改函式內有效。在復合語句中定義的自動變數只...

C語言變數儲存類別

變數除了型別屬性 int char float.外,另外乙個重要屬性就是儲存類別 系統把程式中用到的資料區分為靜態儲存區和動態儲存區。靜態儲存區 在這個區分配了空間的變數,在程式執行過程中一直存在,即相對是不變的。動態儲存區 在這個區分配了空間的變數,可能隨時被釋放,即相對是不斷變化的。c語言提供了...