首頁  >  文章  >  C語言中的靜態變數是指什麼

C語言中的靜態變數是指什麼

清浅
清浅原創
2019-04-30 15:30:0033360瀏覽

C語言中的靜態變數是指被static關鍵字修飾的變數。靜態變數有兩種類型,一種是定義在全域變數上的全域靜態變量,另一種是定義在局部變數上的局部靜態變數。

C語言中的靜態變數是指什麼

【推薦課程:#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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn