阅读量:0
在C语言中,静态数组的生命周期取决于它是如何定义的。静态数组可以在全局范围内定义,也可以在函数内部定义。
- 在全局范围内定义的静态数组: 静态数组在全局范围内定义时,其生命周期为整个程序运行期间。它在程序启动时分配内存,在程序结束时释放内存。静态数组在全局范围内定义时初始化,如果没有显式初始化,则默认初始化为0。
int globalArray[10]; // 全局范围内定义的静态数组
- 在函数内部定义的静态数组: 静态数组在函数内部定义时,其生命周期为整个程序运行期间,但是作用域仅限于该函数内部。静态数组在函数第一次被调用时分配内存,在程序结束时释放内存。静态数组在函数内部定义时初始化,如果没有显式初始化,则默认初始化为0。
void foo(){ static int localArray[5]; // 函数内部定义的静态数组 }
总的来说,静态数组的生命周期为整个程序运行期间,但是作用域不同。在全局范围内定义的静态数组作用域为整个程序,而在函数内部定义的静态数组作用域仅限于该函数。