對乙個資料的定義,需要指定兩種屬性:儲存類別和資料型別。其中儲存類別有以下幾種:static(靜態變數)、auto(自動變數,一般沒加儲存類別都預設是自動變數,如果int a,就是乙個自動變數)、register(暫存器變數)、extern(外部變數)。
我們可以從一下幾個角度來區別這些變數:
1、從作用於角度分:區域性變數和全域性變數
(1)區域性變數:
自動變數,即動態區域性變數(離開函式,值消失);
靜態區域性變數(離開函式,值儲存);
暫存器變數(離開函式,值消失)—— 跟自動變數的區別就是自動變數儲存於記憶體,而暫存器變數存放於暫存器,讀取速度比自動變數快。
(2)全域性變數:
靜態外部變數(只限本檔案引用);
外部變數(允許其他檔案引用);
2、從變數存在時間分:動態儲存和靜態儲存
(1)動態儲存:
自動變數(本函式內有效);
暫存器變數(本函式內有效);
形式引數(本函式內有效);
(2)靜態儲存:
靜態區域性變數(本函式內有效);
靜態外部變數(本檔案內有效);
外部變數(其他檔案可引用);
3、從存放位置上分:
(1)記憶體中的靜態儲存區:靜態區域性變數,靜態外部變數,外部變數;
(2)記憶體中的動態儲存區:自動變數和形式引數;
(3)cpu中暫存器:暫存器變數;
變數的儲存類別
從變數的作用域來分,變數可以分為全域性變數和區域性變數。在乙個函式內部定義的變數是區域性變數,它只是在本函式範圍內有效,在此函式外不能使用這些變數的。全域性變數可以供所有函式共用,它的有效範圍為從定義變數的位置開始到本原始檔結束。全域性變數的優點是 可以減少函式實參和形參的個數,從而減少記憶體空間以...
變數的儲存類別
儲存類別 是指資料在記憶體中的儲存方式 1 供使用者使用的儲存空間 程式區靜態儲存區 編譯時候分配空間,程式結束釋放空間。存放全域性變數 動態儲存區 定義時動態分配空間,對應函式完成時就釋放空間,再呼叫時又重新動態分配空間。存放auto型別區域性變數 2 儲存型別 auto,static,regis...
變數的儲存類別
普通區域性變數 自動變數 在乙個函式內定義,只在函式範圍內有效。在復合語句中定義,只在符合語句中有效。隨著函式呼叫的結束或復合語句的結束而消亡。如果沒有賦初值,則內容為隨機值。2.靜態區域性變數static 作用域 定義的函式內有效。生命週期 在定義的整個週期,靜態區域性變數始終從在著,即使退出函式...