在 C 語言中,變數的作用域(scope)是指變數可被存取的範圍,而變數的生命週期(lifetime)是指變數的存在期間。
對於函數中的靜態變數,在函數被第一次調用時,該變數被初始化並分配內存。然後,該變數在整個程式的執行期間都會保持其值,即使在函數調用完畢之後也是如此。因此,這個變數的生命週期是整個程式的執行期間,而其作用域僅限於函數內部。
在上面的程式碼中,變數 x 的作用域僅限於函數 f 內部,而它的生命週期則從第一次函數 f 被調用開始,一直到整個程式的執行結束為止。因此,每次呼叫函數 f 時,變數 x 的值都會被累加。