溫馨提示×

C語言靜態(tài)數(shù)組的生命周期如何

小樊
90
2024-07-23 20:41:08
欄目: 編程語言

在C語言中,靜態(tài)數(shù)組的生命周期取決于它是如何定義的。靜態(tài)數(shù)組可以在全局范圍內(nèi)定義,也可以在函數(shù)內(nèi)部定義。

  1. 在全局范圍內(nèi)定義的靜態(tài)數(shù)組: 靜態(tài)數(shù)組在全局范圍內(nèi)定義時,其生命周期為整個程序運行期間。它在程序啟動時分配內(nèi)存,在程序結(jié)束時釋放內(nèi)存。靜態(tài)數(shù)組在全局范圍內(nèi)定義時初始化,如果沒有顯式初始化,則默認初始化為0。
int globalArray[10]; // 全局范圍內(nèi)定義的靜態(tài)數(shù)組
  1. 在函數(shù)內(nèi)部定義的靜態(tài)數(shù)組: 靜態(tài)數(shù)組在函數(shù)內(nèi)部定義時,其生命周期為整個程序運行期間,但是作用域僅限于該函數(shù)內(nèi)部。靜態(tài)數(shù)組在函數(shù)第一次被調(diào)用時分配內(nèi)存,在程序結(jié)束時釋放內(nèi)存。靜態(tài)數(shù)組在函數(shù)內(nèi)部定義時初始化,如果沒有顯式初始化,則默認初始化為0。
void foo(){
    static int localArray[5]; // 函數(shù)內(nèi)部定義的靜態(tài)數(shù)組
}

總的來說,靜態(tài)數(shù)組的生命周期為整個程序運行期間,但是作用域不同。在全局范圍內(nèi)定義的靜態(tài)數(shù)組作用域為整個程序,而在函數(shù)內(nèi)部定義的靜態(tài)數(shù)組作用域僅限于該函數(shù)。

0