:
用static宣告區域性變數-------區域性變數指在**塊{}內部定義的變數,只在**塊內部有效(作用域),其預設的儲存方式是自動變數或說是動態儲存的,即指令執行到變數定義處時才給變數分配儲存單元,跳出**塊時釋放記憶體單元(生命期)。用static宣告區域性變數時,則改變變數的儲存方式(生命期),使變數成為靜態的區域性變數,即編譯時就為變數分配記憶體,直到程式退出才釋放儲存單元。這樣,使得該區域性變數有記憶功能,可以記憶上次的資料,不過由於仍是區域性變數,因而只能在**塊內部使用(作用域不變)。
用static宣告外部變數-------外部變數指在所有**塊{}之外定義的變數,它預設為靜態變數,編譯時分配記憶體,程式結束時釋放記憶體單元。同時其作用域很廣,整個檔案都有效甚至別的檔案也能引用它。為了限制某些外部變數的作用域,使其只在本檔案中有效,而不能被其他檔案引用,可以用static關鍵字對其作出宣告。
總結:用static宣告區域性變數,使其變為靜態儲存方式,作用域不變;用static宣告外部變數,其本身就是靜態變數,這只會改變其連線方式,使其只在本檔案內部有效,而其他檔案不可連線或引用該變數。
使用static用於函式定義時,對函式的連線方式產生影響,使得函式只在本檔案內部有效,對其他檔案是不可見的。這樣的函式又叫作靜態函式。使用靜態函式的好處是,不用擔心與其他檔案的同名函式產生干擾,另外也是對函式本身的一種保護機制。
如果想要其他檔案可以引用本地函式,則要在函式定義時使用關鍵字extern,表示該函式是外部函式,可供其他檔案呼叫。另外在要引用別的檔案中定義的外部函式的檔案中,使用extern宣告要用的外部函式即可。
關於static 的使用
static屬性i是屬於類本身的,或者講沒有物件我們可以直接用類名呼叫 這個程式的結果是20,20.因為static是乙個靜態的,所有的物件共用這個乙個 另外,在main函式裡又把i的值改變了,最終大家共用20 若果再寫個aa2.i 30.則最終結果會為30.以最後的i為準,前面的都會被覆蓋 pub...
關於static的使用
首先,對於區域性變數來說,任何乙個在函式內部定義的變數 包括main 都屬於這個範疇。在執行時,編譯器不會對區域性變數進行初始化,也就是說區域性變數的初始值是隨機的,除非對其進行顯式賦值。區域性變數被儲存在程式的棧空間內,使用完畢後會立即釋放 但是對於靜態區域性變數來說,有了static的修飾之後,...
關於類static成員的使用
成員函式 靜態 非靜態 使用靜態成員變數 非靜態成員函式使用靜態成員變數 class statictest static void func1 private static int staticvar int var 靜態成員函式使用靜態成員變數 class statictest static vo...