MST

星途 面试题库

面试题:C++中全局变量和局部变量存储位置细节

在C++中,简述全局变量和局部变量通常存储在内存的哪些区域,并说明静态局部变量的存储位置与普通局部变量有何不同。
43.9万 热度难度
编程语言C++

知识考点

AI 面试

面试题答案

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