温馨提示×

C语言静态数组的生命周期如何

小樊
90
2024-07-23 20:41:08
栏目: 编程语言

在C语言中,静态数组的生命周期取决于它是如何定义的。静态数组可以在全局范围内定义,也可以在函数内部定义。

  1. 在全局范围内定义的静态数组: 静态数组在全局范围内定义时,其生命周期为整个程序运行期间。它在程序启动时分配内存,在程序结束时释放内存。静态数组在全局范围内定义时初始化,如果没有显式初始化,则默认初始化为0。
int globalArray[10]; // 全局范围内定义的静态数组
  1. 在函数内部定义的静态数组: 静态数组在函数内部定义时,其生命周期为整个程序运行期间,但是作用域仅限于该函数内部。静态数组在函数第一次被调用时分配内存,在程序结束时释放内存。静态数组在函数内部定义时初始化,如果没有显式初始化,则默认初始化为0。
void foo(){
    static int localArray[5]; // 函数内部定义的静态数组
}

总的来说,静态数组的生命周期为整个程序运行期间,但是作用域不同。在全局范围内定义的静态数组作用域为整个程序,而在函数内部定义的静态数组作用域仅限于该函数。

0