C中的靜態變數
如何在C中使用靜態變數
在函數內部,您可以使用static
關鍵字來初始化靜態變數。
“在函數內部”關鍵字是因為全局變數默認為靜態變數,所以不需要添加關鍵字。
那什麼是靜態變數呢?靜態變數如果沒有指定初始值,則初始化為0,並且在函數調用之間保留其值。
考慮以下函數:
1 | int incrementAge() { |
如果我們只調用incrementAge()
一次,則返回值將為1
。如果我們多次調用它,我們將始終得到1,因為age
是一個局部變量,並且在每次函數調用時重新初始化為0
。
如果我們將函數更改為:
1 | int incrementAge() { |
現在每次調用此函數時,我們都會得到一個遞增的值:
1 | printf("%d\n", incrementAge()); |
將會得到:
1 | 1 |
我們還可以省略在static int age = 0;
中將age
初始化為0
,只需寫成static int age
,因為靜態變數在創建時自動設置為0。
我們還可以擁有靜態數組。在這種情況下,數組中的每個單個項都初始化為0:
1 | int incrementAge() { |
tags: [“C”, “static variables”, “arrays”]