C語言中的靜態變數是指被static關鍵字修飾的變數。靜態變數有兩種類型,一種是定義在全域變數上的全域靜態變量,另一種是定義在局部變數上的局部靜態變數。
【推薦課程:#C語言教學##】
靜態變數
靜態變數透過關鍵字static進行聲明,接下來將在文章中為大家具體介紹在C語言中什麼是靜態變量,具有一定的參考價值,希望對打擊有所幫助。 Static意思是「靜態」「靜止」的意思,在C語言中的意思其實和它的本意差不多,表示「靜態」或「全域」的意思,用來修飾變數和函數,經static修飾後的變數或函數的作用域會改變。此變數儲存在資料段上,可以改變變數的作用域和生命週期。在C語言中靜態變數分為兩種形式,分別是全部靜態變數和局部靜態變數。全域靜態變數
在全域變數前面加上關鍵字static,全域變數就定義成一個全域靜態變數(1)記憶體中的位置:靜態儲存區(靜態儲存區在整個程式運作期間都存在)(2)初始化:未經初始化的全域靜態變數會被程式自動初始化為0 #(3)作用域:全域靜態變數在宣告他的檔案之外是不可見的。準確地講從定義之處開始到檔案結尾。局部靜態變數
在局部變數前面加上關鍵字static,局部變數就定義成一個局部靜態變數。 (1)記憶體中的位置:靜態儲存區(2)初始化:未經初始化的局部靜態變數會被程式自動初始化為0(自動物件的值是任意的,除非他被顯示初始化)(3)作用域:作用域仍為局部作用域,當定義它的函數或語句區塊結束的時候,作用域隨之結束。注意
當static用來修飾全域變數的時候,它就改變了全域變數的作用域(在宣告他的檔案之外是不可見的),但是沒有改變它的存放位置,還是在靜態儲存區中。 當static用來修飾局部變數的時候,它就改變了局部變數的儲存位置,從原來的堆疊存放改為靜態儲存區。但是局部靜態變數在離開作用域之後,並沒有被銷毀,而是仍然駐留在記憶體當中,直到程式結束,只不過我們不能再對他進行存取。C語言中使用靜態函數的好處
(1)靜態函數會被自動分配在一個一直使用的儲存區,直到退出程序,避免了調用函數的壓棧出棧,速度快很多。 (2)static指函數的作用域僅限於本檔案。不用擔心自己定義的函數是否會與其他文件的函數同名總結:以上就是本篇文章的全部內容了,希望對大家有所幫助。以上是C語言中的靜態變數是指什麼的詳細內容。更多資訊請關注PHP中文網其他相關文章!