C程序中全局变量的存储空间在( )分配。

2023-09-01

A.代码区
B.静态数据区
C.栈区
D.堆区

参考答案:B

本题考查程序设计语言内存分配知识点。一个由c/c++编译的程序占用的内存分为以下几个部分:

1.栈区(stack):由编译器自动分配释放,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。

2.堆区(heap):一般由程序员分配释放,若程序员不释放,程序结束时可能由OS回收。注意它与数据结构中的堆是两回事,链表的数据空间必须采用堆存储分配策略。

3.全局区(静态区)(static):全局变量和静态变量的存储是放在这一块的。初始化的全局变量和静态变量在一块区域,未初始化的全局变量和未初始化的静态变量在相邻的另一块区域,程序结束后由系统释放。

4.文字常量区:常量字符串就是放在这里的,程序结束后由系统释放。

5.程序代码区:存放函数体的二进制代码。