面试题答案
一键面试全局变量存储区域及特点
- 存储区域:全局变量存储在静态存储区。
- 生命周期:全局变量的生命周期从程序开始执行到程序结束。在程序启动时,系统为全局变量分配内存,在程序结束时,系统回收这些内存。
- 作用域:其作用域是整个程序,从定义点开始到程序结束,只要在该程序的任何函数内部都可以访问(前提是没有同名局部变量屏蔽其访问)。
局部变量存储区域及特点
- 自动局部变量
- 存储区域:存储在栈区。
- 生命周期:当定义该局部变量的函数被调用时,系统为其在栈上分配内存,函数结束时,栈上该变量的内存空间被自动释放,其生命周期结束。
- 作用域:作用域仅限于定义它的函数或代码块内部,出了该函数或代码块就无法访问。
- 静态局部变量
- 存储区域:存储在静态存储区。
- 生命周期:从程序开始执行到程序结束。但它只在第一次进入定义它的函数或代码块时初始化,后续调用函数时不再初始化。
- 作用域:作用域仍然是定义它的函数或代码块内部,不过由于它存储在静态存储区,其值在函数调用结束后不会消失,下次调用函数时,它的值是上一次函数调用结束时的值。