C 入門教程(三十一) 靜態變數

2021-08-18 02:52:03 字數 716 閱讀 2261

小古銀的官方**(完整教程):

靜態變數的應用場景並不多,但是需要用到的時候還是非常有用的。使用關鍵字static宣告的變數就是靜態變數。

#include // std::cout std::endl

int get_count(void)

int main(void)

輸出結果:

123

45

如果變數count不是靜態變數的話,也就是普通的區域性變數,那麼在函式結束時,它的記憶體就會被釋放,下次呼叫時,又會重新建立變數count並且初始化為0,那麼這時候輸出的5行都會是0。

而現在count被宣告為靜態變數,那麼它的記憶體實際上是屬於全域性的,它的記憶體不會因為get_count()函式呼叫結束而釋放,但是它的使用範圍控制在get_count()函式裡面,其他地方是不能呼叫變數count的。

上面**中,由於變數count的記憶體是屬於全域性的,那麼變數count就會在程式建立的時候被建立。而之後每次呼叫get_count()函式時,都是從++count;這條語句開始執行。

C 靜態變數

在c 程式中,沒有全域性變數的概念,這意味著所有的成員變數只有該類的實 例才能操作這些資料,這起到了 資訊隱藏 的作用。但有些時候,這樣做卻不是個明智的選擇。假設我們要定義乙個圖書類,要求該類能儲存圖書的數量,即每增加一本圖書 定義乙個例項 圖書的數量應該加1。如果沒有靜態變數,我們需要將圖書的數量...

C 靜態變數

在c 程式中,沒有全域性變數的概念,這意味著所有的成員變數只有該類的例項才能操作這些資料,這起到了 資訊隱藏 的作用。但有些時候,這樣做卻不是個明智的選擇。假設我們要定義乙個圖書類,要求該類能儲存圖書的數量,即每增加一本圖書 定義乙個例項 圖書的數量應該加1。如果沒有靜態變數,我們需要將圖書的數量儲...

C 靜態變數

靜態變數 型別說明符是static。靜態變數屬於靜態儲存方式,其儲存空間為記憶體中的靜態資料區 在靜態儲存區內分配儲存單元 該區域中的資料在整個程式的執行期間一直占用這些儲存空間 在程式整個執行期間都不釋放 也可以認為是其記憶體位址不變,直到整個程式執行結束 相反,而auto自動變數,即動態區域性變...