首页 >>  正文

临时变量放在堆还是栈

来源:baiyundou.net   日期:2024-09-22

荣怪项2142计算机理论高手:汇编中说的堆栈是存在于哪里的?在寄存器吗?搞不清楚 -
易亭放15118782183 ______ 是在内存中的, 每一个汇编程序在开始的时候 都会定义一个代码段 数据段 和堆栈段 也就是在内存中开辟这么几个专门的空间而已 在函数中定义的临时变量都会放在堆栈段开辟的空间中 如果你没定义 操作系统也会自动生成 ,但这一切都是在内存中

荣怪项2142在程序运行时,哪些变量存放在堆中.那些变量存放在栈中
易亭放15118782183 ______ 堆:全局变量,静态变量,malloc函数 栈:子函数入口的临时变量,局部变量

荣怪项2142堆和栈的区别? 全局变量在哪里存 ,静态变量在哪里存? -
易亭放15118782183 ______ 问题1:堆Heap指的是用malloc和free,new和delete等函数动态创建的内存空间,由程序员自己维护和管理;栈Stack指的是函数1跳转进入子函数2之前,为了保护函数1的现场(CPU寄存器状态等信息,委的就是子函数2执行结束,还能够返回到函数1)操作系统自动进行的压栈和出栈操作;另外,我记得函数1进入子函数2之后,子函数2内部的临时变量也是由操作系统在栈中分配的.问题2:全局变量在编译时就被编译器固定在“数据段”了,占了数据段中的位置(存储空间);静态变量我没有研究过,不敢轻言.

荣怪项2142JAVA中实例化一个对象,成员方法中的参数会在哪分配内存(栈/堆)? -
易亭放15118782183 ______ 首先内存总体分为了4个部分,包括 stack segment 、heap segment、code segment 、data segment ; 其中我们程序中用关键字new出来的东西都是存放在heap segment; 程序中的局部变量存放在stack segment,这些局部变量是在具体方法执行结束之后,系统自动释放内存资源(而heap segment中的资源需要java垃圾回收机制来处理); 程序中的方法,是内存中的code segment中的,而且是多个对象 共享一个代码空间区域; static静态变量,需要放在内存中的data segment中,

荣怪项2142C++变量的存储 -
易亭放15118782183 ______ 指针值是一个地址值,是内存中的一个固定值.你应该问的指针变量存在那里?指针变量,可以看成是一个int型的变量,如果是局部的就存储在栈中.例如:int a = 1; int* p = &a; p的值是一个地址值,a的地址:0x9......指针变量p如果是局部的就存储在栈中.如果p在一个函数中,函数结束后,指针p就没有了.另外指针指向的数据内容不一定存储在堆中,我上边的例子中p指向的内容是1,它是存储在栈中的.只有用new或者malloc分配的内存空间,才存储在堆中.例如:int n = 10; int* p = (int*)malloc(n*sizof(int)); 这里的p指向的数据才存储在堆中.

荣怪项2142java 堆、栈中的变量使用的时候是怎么用的 -
易亭放15118782183 ______ 1. 栈(stack)与堆(heap)都是Java用来在Ram中存放数据的地方.与C++不同,Java自动管理栈和堆,程序员不能直接地设置栈或堆. 2. 栈的优势是,存取速度比堆要快,仅次于直接位于CPU中的寄存器.但缺点是,存在栈中的数据大小与...

荣怪项2142java 堆栈的概念
易亭放15118782183 ______ 有 new 出来的东西都是放在堆区 方法 里面的临时变量什么乱七八糟的东西 都是放在栈区 用完之后会马上回收 栈区的空间较小 但速度快

荣怪项2142给一段C语言代码! -
易亭放15118782183 ______ 整个程序都用char就可以了,scanf输入,printf输出,1.判断输入的字符是否小写,2.如果是小写就将字符减去32后输出就是大写字母!

荣怪项2142java中堆和栈的区别 -
易亭放15118782183 ______ Java的堆是一个运行时数据区,类的(对象从中分配空间.这些对象通过new、newarray、anewarray和multianewarray等 指令建立,它们不需要程序代码来显式的释放.堆是由垃圾回收来负责的,堆的优势是可以动态地分配内存大小,生存期...

(编辑:自媒体)
关于我们 | 客户服务 | 服务条款 | 联系我们 | 免责声明 | 网站地图 @ 白云都 2024