思考C語言變數的幾個「屬性」

2021-06-21 03:51:20 字數 834 閱讀 4099

儲存型別  資料型別  變數名

1、資料型別

眾所周知,如int

,float

等基本資料型別和結構體、列舉等構造資料型別,不做討論。

2、儲存週期

主要有三種:

① auto:預設時預設的儲存型別,進入語句塊時自動申請記憶體,退出時自動釋放記憶體;不初始化時,值是不確定的。

register

,不需要我們人為制定。

③ static:一直保持,不會伴隨函式呼叫時的堆疊消失;靜態變數自動初始化為0。

3、作用域

根據定義變數的位置決定其能被訪問的範圍,主要有兩種區域性變數和全域性變數。

① 區域性變數:進入語句塊時獲得記憶體,退出語句塊時釋放記憶體,不再有效;定義時不會自動初始化。

② 全域性變數:在所有函式之外定義的變數,從程式執行起即佔據記憶體,程式執行過程中可隨時訪問,程式退出時釋放記憶體,在程式中定義它的位置以後都有效;

感受一下,儲存週期是時間上的定義,作用域是空間上的定義,二者有交叉。

各變數的生命週期如下圖:

全域性變數和靜態變數感覺很像,二者最大的差別在作用域!

下面考慮一下各種變數宣告但不初始化時的預設值。

把握幾條基本原則:

static自動初始化為0,

全域性變數自動初始化為0,

區域性變數不自動初始化。

另外,const

應該在宣告時初始化,如果不初始化,在

visual

中有編譯錯誤,在

qt中為隨機數。

C語言變數的屬性

變數的屬性有五種 1 名字 必須顯示說明 2 型別 必須顯示說明 3 儲存類別 預設方式或顯示說明 使用 auto register static extren 4 作用域 由儲存類別決定 5 生存期 由儲存類別決定 變數的儲存類別 定義 指系統對變數儲存方式的規定。分類 由儲存方式的不同分為兩類 ...

C語言變數屬性

在c語言中,變數是具有屬性的,主要有auto static register extern auto 區域性變數的自動預設屬性,不需要顯示宣告,且儲存在棧上 register 暫存器變數,請求編譯器將區域性變數儲存在暫存器中,由於是請求,編譯器有可能拒絕,所以儘管利用register對變數進行了修飾...

C語言中變數屬性

事物的難度遠遠低於對事物的恐懼!這章來聊聊變數的屬性,玩過遊戲的朋友都知道,遊戲裡各個角色都有各自特定的屬性,才有了各個角色的功力不同,這個只能打小妖而那個卻能戰大怪,這就因為它們具有不同的屬性。而在c語言中,變數也可以有自己的屬性,屬性不同,變數的在程式中具有的特性也不同。那麼如何給變數加上自己的...