C中的靜態變數

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