1. 程式人生 > >C中什麽情況下把局部變量定義為局部靜態變量

C中什麽情況下把局部變量定義為局部靜態變量

spf image ref get 調用 一次 不用 變量定義 .com

技術分享圖片

首先要說明,數組不是變量;C中稱它是具有相同類型元素的集合,嚴格說來它是一種簡單的數據結構——這是題外話。定義在函數中的自動型(就是不用static修飾)數組,函數被調用時才創建,而函數結束後就自動銷毀了,那麽函數執行過程中對它的操作就白費了。
定義成static型後,編譯時就為其分配內存空間並永久性保留著,直到程序結束,函數對它的操作就不會丟失了。知道這個原理後,也就知道並不是函數中的數組都得定義成static型,比如操作結果是在屏幕上顯示數組內容,那在函數裏作顯示,這就不必用static了……

如果你希望在一個函數中對一個變量只執行一次初始化,以後不再初始化,使用上一次結果,就應該使用靜態局部變量。
例如: static int n;
其他類型都可以。

解決方案二:

比如說你要在局部計算一個圓的半徑,那麽你可以將PI的值申請為static,因為PI以後再也不會變更了!希望能夠幫到你!

解決方案三:

static修飾的變量,可以在任何地方通過類名::變量名的方法訪問他的值,比如你要統計一個類創建的次數,就可以給這個類 寫個static的變量用來計數

解決方案四:

加了static只不過是存儲的位置不一樣了而已,跟是否局部變量沒關系,當然,全局變量加不加static都一樣。


C中什麽情況下把局部變量定義為局部靜態變量