儲存型別 資料型別 變數名
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語言中,變數也可以有自己的屬性,屬性不同,變數的在程式中具有的特性也不同。那麼如何給變數加上自己的...