1.static靜態全域性變數
它儲存在全域性資料區,每次只初始化一次,等程式結束時方才釋放記憶體。
例如:#include
int main( )
static int i=0;
return 0;
}輸出結果就是 :12
3此時相較於auto變數
例如:#include
int main( )
int i=0;
輸出結果就是 :12
3輸出結果相同,那是因為static全域性變數與auto全域性變數在語句中都是儲存上乙個值的,具有記憶功能。
2.靜態區域性變數
普通的區域性變數在棧空間上分配,這個區域性變數所在的函式被多次呼叫時,每次呼叫這個區域性變數在棧上的位置都不一定相同。區域性變數也可以在堆上動態分配,但是記得使用完這個堆空間後要釋放之。
例如:#include
int main( )
c( )
輸出結果:12
3可見靜態區域性變數也是只初始化一次,以後每次去呼叫函式都是使用上次儲存的那個值。
相較於 auto變數
例如:#include
int main( )
c( )
輸出結果則就是:11
1auto變數則是每次呼叫一次函式重新對相應的變數初始化一次,所以每次呼叫函式之後輸出的值都一樣。
static的用法與用途
static全域性變數與普通的全域性變數有什麼區別?static區域性變數和普通區域性變數有什麼區別?static函式與普通函式有什麼區別?全域性變數 外部變數 的說明之前再冠以static 就構成了靜態的全域性變數。全域性變數本身就是靜態儲存方式,靜態全域性變數當然也是靜態儲存方式。這兩者在儲存方...
static與extern的用法
static是c 中常用的修飾符,它被用來控制變數的存貯方式和可見性。extern,c 是使c 能夠呼叫c寫作的庫檔案的乙個手段,如果要對編譯器提示使用c的方式來處理函式的話,那麼就要使用extern c 來說明。一.c語言中的static關鍵字 在c語言中,static可以用來修飾區域性變數,全域...
extern 與 static 用法總結
資料1 1 概念基礎 區域性變數 函式內部定義的變數 包括定義在函式內部復合語句中的變數 全域性變數 定義在函式外部的變數。作用域 任何識別符號 包括變數 函式名 符號常量及新的資料名 都有它的作用範圍,此範圍稱為該識別符號的作用域。比如符號常量的作用域是從定義符號 常量的地方開始到包含這個 def...