C语言各种数据在内存中的分配方式,分别对程序的运行效率有哪些影响? 5

 我来答
LycrusHamster
2012-12-30 · TA获得超过890个赞
知道小有建树答主
回答量:487
采纳率:100%
帮助的人:123万
展开全部
内存分配?
堆栈的综合效率最高(除寄存器外),一般函数(包括main())的变量都是在堆栈内的。
你可以显示声明register 但是是存在寄存器还是一般的堆栈完全由编译器决定优化,其实你加了也没用。。。。。堆栈是在内存的一块固定大小的区域,比较小,数据量大了会爆栈(综合最高是因为会有部分内容进入寄存器,寄存器比内存快)。
全局变量是在全局变量区的,全局变量区是在内存中的固定大小的一块区域。全局变量区也不怎么大,但是比堆栈大多了。。。。
函数代码区。。。是在内存 你无视好了。。。
堆区 是在内存的一块很大很大的区域,一切动态建立的对象(c用alloc家族函数 c++的new)都是在堆区,一般堆区是不会爆的,除非真的很大大大大大。。
效率上讲 寄存器最快,然后就是内存了,磁盘的读写不考虑。
综上,编译器会帮你优化的,你只要关心会不会爆栈,会不会爆全局变量,就行了。。
还有字符串常量区,也是在内存中的,你也无视好了。。。。。
还有静态区也是在内存中的,大小是编译器编译时决定的,你也无视好了。。。。
百度网友6f44f11
2012-12-30 · TA获得超过708个赞
知道小有建树答主
回答量:458
采纳率:0%
帮助的人:209万
展开全部
从另一个角度,从变量值存在的作时间(即生存期)角度来分,可以分为静态存储方式
和动态存储方式。
静态存储方式:是指在程序运行期间分配固定的存储空间的方式。
动态存储方式:是在程序运行期间根据需要进行动态的分配存储空间的方式。
追问
是内存分配
追答
值类型在 栈上 效率高  引用类型在堆上 效率低
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式