C語言 靜態變數static的用法

2021-07-28 13:44:37 字數 933 閱讀 4575

靜態全域性變數,作用於僅限於變數被定義的檔案。其他檔案即使用extern宣告也沒法使用,準確說就是作用域是從定義處開始,到檔案結束,

在定義處之前的那些**不能使用它。

靜態區域性變數,在函式裡定義,就只能在這個函式裡使用,同乙個文件中的其他函式也是用不了的。由於被static修飾的變數總是存在記憶體的

靜態區。所以即使這個函式執行結束,這個靜態變數的值不會被銷毀,函式下次使用時仍能使用。

函式前加static使得成為靜態函式,但此處的「static」的含義不是指儲存,而是只對對函式的作用域僅限於本檔案(所以有內部函式)

關鍵字static有著不尋常的歷史,起初在c中表示退出乙個塊後仍然存在的區域性變數,之後在c中又有了第二種含義:用來表示被其他

檔案訪問的全域性變數和函式。

[html]

view plain

copy

<

prename

="code"

class

="html"

>

//關鍵字static的用法  

#include<

stdio.h

>

#include<

stdlib.h

>

static int n;//定義的靜態全域性變數      

int   fun1()  

int  fun2()  

int main()  

printf("m

= %d\n",fun1());  

printf("n

= %d\n",fun2());  

system("pause");  

return 0;  

}  輸出結果:

C語言之static靜態變數

1.static 變數 靜態變數的型別 說明符是static。靜態變數當然是屬於靜態儲存方式,但是屬於靜態儲存方式的量不一定就是靜態變數。例如外部變數雖屬於靜態 儲存方式,但不一定是靜態變數,必須由 static加以定義後才能成為靜態外部變數,或稱靜態全域性變數。2.靜態區域性變數 靜態區域性變數屬...

C語言之static靜態變數

靜態變數是一種生存期為整個源程式的量。雖然離開定義它的函式後不能使用,但如再次呼叫定義它的函式時,它又可繼續使用,而且儲存了前次被呼叫後留下的值。1.static 變數 靜態變數的型別 說明符是static。靜態變數當然是屬於靜態儲存方式,但是屬於靜態儲存方式的量不一定就是靜態變數。例如外部變數雖屬...

static 靜態變數

function a a a a 輸出什麼是static靜態變數?以下為在c語言中的理解 靜態變數 型別說明符是static。靜態變數屬於靜態儲存方式,其儲存空間為記憶體中的靜態資料區 在靜態儲存區內分配儲存單元 該 區域中的資料在整個程式的執行期間一直占用這些儲存空間 在程式整個執行期間都不釋放 ...