您好、欢迎来到现金彩票网!
当前位置:老k棋牌 > 栈区 >

“系统”对auto变量分配存储空间这些空间在哪里?栈区吗?

发布时间:2019-07-26 03:47 来源:未知 编辑:admin

  百度知道电脑/网络操作系统/系统故障Windows

  “函数中的形参和在函数中定义的变量(包括在复合语句中定义的变量),都属此类,在调用时系统会给他们分配存储空间,在函数调用结束时就会自动释放这些存储空间”---《C程序设计》谭...

  “函数中的形参和在函数中定义的变量(包括在复合语句中定义的变量),都属此类,在调用时系统会给他们分配存储空间,在函数调用结束时就会自动释放这些存储空间”---《C程序设计》谭浩强。

  不懂1,形参、函数中的auto变量都放在哪里?我想过是不是放在栈区,但想到既然栈区只能对最近一个压栈的数据操作,那 假若我在程序中有几个auto变量,而且要其中某两个相加,那应该如何操作?例如:

  这样,z、a、b、c假若都按顺序被分配在栈区(按顺序压栈),那么b=a+c怎么操作?

  不懂2:这里的“系统”是指什么?是编译系统(设置栈底)?还是程序运行环境(操作系统)吗?如果是后者,那这个压栈出栈操作如何在页式内存管理环境中实现?操作系统对一个进程的内存管理似乎对该进程所属的程序内部堆栈的分配不负责吧?因为页式内存管理中,操作系统所做的工作只是把线性地址映射为物理地址而已,对一个程序运行时的堆栈(线性地址)分配管不到。

  不懂3,“包括在复合语句中定义的变量”是怎么回事?变量不是只能在第一个有效语句之前定义吗?

  抱歉,小弟平时少上百度,财富值都问问题用完了,现在财富值为0,请各位大虾高抬贵手打打几个字当义务劳动吧.....展开我来答

  可选中1个或多个下面的关键词,搜索相关资料。也可直接点“搜索资料”搜索整个问题。

  展开全部1. 所谓的系统,就是编译器,它连接的是程序和机器。

  所谓的分配,这个词语在编译器看来,就是用一个偏移地址来替代程序中的变量名称-----因为机器只能理解偏移地址,人类只能理解变量名称。

  这个取决于编译器怎么设计了,C语言本身的规范没有这方面的严格约束,看制作C编译器的公司如何规定他们的产品了。另外,如果扩展名是C或者cpp的,编译器就看成C++的代码,没有这方面的约束。

  展开全部放在栈里啊,或许不是一个栈吧,第二个系统应该是指操作系统吧,操作系统只管分配空间,编译系统使用分配的空间,第三个我懂举个例子吧

http://theenigmaco.com/zhanqu/409.html
锟斤拷锟斤拷锟斤拷QQ微锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷微锟斤拷
关于我们|联系我们|版权声明|网站地图|
Copyright © 2002-2019 现金彩票 版权所有