什麼是靜態變數 舉例 C語言入門

2021-10-09 02:40:27 字數 1173 閱讀 4692

歡迎關注筆者,你的支援是持續更博的最大動力

區域性變數:定義在函式內部的變數(函式的形參也是區域性變數),只能在定義它的函式內部使用

全域性變數:定義在函式外面的變數,所有函式都可以使用

靜態變數:有全域性變數、前面加了「static」關鍵字的區域性變數

區別:

如果沒明確初始化,則靜態變數會被自動初始化成全0(每個bit都是0),區域性非靜態變數的值則隨機

下面是兩段**,除了第2段多了「static」關鍵字,其他內容一模一樣,但輸出結果卻不同。

非靜態變數

void

func()

intmain()

這段**將輸出:44

4因為每次呼叫fun函式,都執行了初始化語句,使得 n = 4, 不論 ++n執行多少次,下次呼叫函式時,還是會先初始化n。

呼叫次數

過程輸出

呼叫結束時n的值

第1次初始化 n = 4,輸出n,++n45

第2次初始化 n = 4,輸出n,++n45

第3次初始化 n = 4,輸出n,++n45

靜態變數

void

func()

intmain()

這段**將輸出:45

6因為只有第1次呼叫func函式時,才執行初始化語句,使得 n = 4,下次執行的時候,不會再執行初始化語句了。所以,第2次、第3次呼叫fun函式時,n沒有初始化,n的值是上一次呼叫函式後n的值。

呼叫次數

過程輸出

呼叫結束時n的值

第1次初始化 n = 4,輸出n,++n45

第2次n = 5,輸出n,++n56

第3次n = 6,輸出n,++n67

從上面兩段**,可看出靜態變數和非靜態變數的區別。

日常vlog: 點這裡去b站~

C 靜態變數

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

C 靜態變數

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

C 靜態變數

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