static的用法及其與auto的區別小結

2021-09-01 13:27:03 字數 679 閱讀 8026

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...