早教吧 育儿知识 作业答案 考试题库 百科 知识分享
早教吧考试题库频道 --> 计算机类考试 -->软考中级 -->

一种语言中不同种类的变量往往采用不同的存储分配策略,C语言中的全局变量和静态变量采用静态分配

题目

一种语言中不同种类的变量往往采用不同的存储分配策略,C语言中的全局变量和静态变量采用静态分配,而自动(Auto)类变量采用(30)。

A.最佳分配

B.首先分配

C.堆式分配

D.栈式分配

参考答案
正确答案:D
解析:在目标程序运行时,目标代码所引用的数据对象在内存空间中。因此,在编译阶段产生目标时,要把目标代码所引用的数据对象映射到内存空间上,在运行时,再分配给需要的内存单元,这个过程称为存储分配。分配的对象有简单数据类型(如整、实和布尔型等)、结构数据类型(如数组和记录等)和连接数据(如返回地址、参数等)。由于各种语言的语义不同,主要是名字的作用域和生存期不同,因而对存储空间的组织和采用的存储分配策略也不同,可分为静态和动态两大类。把过程或函数的一次执行叫一个活动,把一个活动所需要的存储空间组织在一起构成一个活动记录(有的书上称数据区),不同语言的活动记录结构是不同的。如果在编译时能确定目标程序运行中所需的全部数据空间的大小及相互位置,那么,能在编译时安排好目标程序运行时全部数据对象在存储空间中的位置,且不随目标程序的运行而改变,则称这种分配为静态存储分配,如先于FORTRAN77版本的FORTRAN语言采用这种分配策略。如果一个程序语言允许递归过程、可变数组或动态数据结构,那么,就需采用动态存储分配策略,它有两种方式:栈式和堆式。栈式动态存储分配策略适用于组织PASCAL、C、ALGOL之类的语言的活动记录。每当调用一个过程产生一个活动时,它所需的活动记录就分配在栈顶。每当过程的一个活动结束时,就释放栈顶的活动记录。如果一个程序语言提供用户构造动态数据结构的设施,有自由地申请数据空间和退还数据空间的机制(如C++中的newdelete,PASCAL的new),或者不仅有过程而且有进程的程序结构,即空间的使用未必服从“先申请后释放,后申请先释放”的原则,那么栈式的动态存储分配方案就不适用了,这种情况下通常使用一种称为堆式的动态存储分配方案。下图所示为C语言运行时的内存空间安排,编译程序通常把全局量和每个函数中的静态量分在静态数据区,把一个函数中的自动变量和必需的数据组织成活动记录,随着调用函数的展开,分配在栈中。对于程序员构造动态数据结构,调用malloc动态申请的单元,则分配在堆中。
看了一种语言中不同种类的变量往往采...的网友还看了以下:

在化工生产中,原料往往不能全部转化成产品.某校学生对买来的工业固体烧碱的杂质成分进行研究,他们查阅 化学 2020-05-14 …

移民(脱贫)搬迁集中安置点基础和公共服务设施和两种类型。()A.小配套B.大配套C.外部配套D.内部 公务员考试 2020-05-31 …

移民(脱贫)搬迁集中安置点基础和公共服务设施“小配套”和“()”两种类型A.大配套B.标准配套C.自 公务员考试 2020-05-31 …

生物分类是研究生物的一种基本方法.在被子植物中,花、果实和往往作为分类的重要依据.桃这个物种,在分 语文 2020-06-21 …

配子法求概率的题!父亲是AA占1/3、Aa占2/3,母亲是AA占2/3、Aa占1/3时,求后代的基 语文 2020-07-09 …

科学家的观点往往是根据事实提出的,在科学探究过程中,注意区分事实和观点是十分必要的,以下属于事实的 语文 2020-07-25 …

some和other搭配,还是和others?one和什么搭配?类似于这样的搭配还有哪些? 英语 2020-11-11 …

混合配料中加入木屑,粗玉米粉的目的是什么?读以下某食用菌(真菌)养殖的大概过程,回答问题:将曝晒后的 语文 2020-11-28 …

(2011•平湖市模拟)2011年平湖市初中毕业生体育学业测试项目有技能类和耐力类.技能类项目包括立 其他 2020-12-09 …

人际交往就是人与人的交流和往来。与人交往,是人类心灵和精神的内在需要。如果交往的需要不能得到满足,它 政治 2021-01-07 …