面试题答案
一键面试- 全局变量:
- 全局变量存储在内存的静态存储区。该区域在程序开始执行时就分配内存,直到程序结束才释放。它在整个程序的生命周期内都存在,可供程序的各个函数访问。
- 局部变量:
- 普通局部变量存储在栈区。栈区是一种后进先出的数据结构,当函数被调用时,为局部变量分配栈空间,函数结束时,这些局部变量的栈空间被释放。所以普通局部变量的生命周期仅限于其所在函数的执行期间。
- 静态局部变量与普通局部变量存储位置的不同:
- 静态局部变量存储在静态存储区,和全局变量一样,在程序开始执行时就分配内存,直到程序结束才释放。与普通局部变量不同,其生命周期并不局限于所在函数的执行期间,即使函数多次调用,静态局部变量的值依然会保持上次调用结束时的值。而普通局部变量每次函数调用时重新分配栈空间,函数结束就释放。