C语言中的作用域和生存周期
Author:天之枫
在C语言中,涉及到作用域和生存周期的问题,大多是指的变量和函数。
C语言中用得最多的应当算是局部变量了,而局部变量的作用域一般认为在函数体内有效。局部变量的内存分配管理和销毁是由编译器来实现的,程序编写者不用考虑其实现细节。当函数执行完成返回时,局部变量将全部被销毁,这决定了其生存周期。这里涉及到返回值的问题,至于是在返回值传递完成之后销毁呢,还是将返回值拷贝到一个临时变量中,销毁全部的局部变量,再将临时变量返回呢,这是由编译器的设计者所决定的。目前大多数的C编译器是采用的后者的设计方案。
刚刚提到局部变量的作用域一般认为是在函数体内。但是根据C99标准,该说法有了变化。在新的标准中,允许即时定义局部变量,示例如下:
for( int i = 0; i < MAXSIZE; i++ )
{
….
}
例子中的局部变量i