社区
非技术区
帖子详情
为什么局部变量要存放在stack
yammio
2011-07-15 11:25:35
为什么局部变量要存放在stack,存放在堆中不好么,还有,bss是什么,heap是什么
...全文
103
回复
打赏
收藏
为什么局部变量要存放在stack
为什么局部变量要存放在stack,存放在堆中不好么,还有,bss是什么,heap是什么
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
关于
局部变量
存放
在栈区的问题
昨天在看jvm运行态数据
存放
区域的时候,看到他的栈区用于
存放
局部变量
,突然有个问题,为啥
局部变量
要放在栈中。似乎之前学C的时候,C的
局部变量
也是放在栈中,当时学写汇编的时候似乎没有这方面的问题。好吧,来整理下。产生这个问题的主要原因是,
局部变量
为啥要用栈结构来保存,因为觉得栈访问的时候会pop,这样的话就会将
局部变量
给弄没了,这不是懵逼了么。后来仔细想了想当时自己写OS的时候的想法,其实...
在C程序中,
局部变量
的存储空间应在**栈(
Stack
)**上分配
在C程序中,
局部变量
的存储空间应在**栈(
Stack
)上分配。栈是一种自动管理存储空间的区域,系统会在函数调用时自动分配
局部变量
的存储空间,并在函数执行结束时自动回收这些存储空间。这种机制使得栈上的存储空间管理非常高效,但栈的大小通常是有限的。当栈空间不足时,会发生栈溢出(
Stack
Overflow)**错误。栈溢出是一种常见的运行时错误,通常会导致程序崩溃或行为异常。栈空间不足会导致栈溢出错误,通常表现为程序崩溃或行为异常。栈溢出的主要原因是递归调用过深、
局部变量
过大或嵌套函数调用过深。
java中
局部变量
与全局变量的区别
1.位置: (1)
局部变量
:定义在方法的内部,或者作为方法的参数 (2)全局变量:定义在方法的外部,类的内部 2.作用域: (1)
局部变量
:在方法的内部使用 (2)全局变量:在类的内部都访问 3.内存: (1)
局部变量
:
存放
于
stack
栈区 (2)全局变量: ①静态成员变量:
存放
于常量区/静态区 ②普通成员变量:
存放
于heap堆区 static修饰的变量称为静态成员变量/类变量 ...
C语言程序里全局变量、
局部变量
、堆、栈的存储区域
文章目录一、存储区域介绍二、在ubuntu系统中输出信息进行验证三、在Keil中针对stm32系统进行验证四、总结五、参考资料 一、存储区域介绍 C语言在内存中一共分为如下几个区域 区域 作用 内存栈区
存放
局部变量
名 内存堆区
存放
new或者malloc出来的对象 常数区
存放
局部变量
或者全局变量的值 静态区 用于
存放
全局变量或者静态变量 代码区 二进制代码 区域的解释 栈区(
stack
)–由编译器自动分配释放 ,
存放
函数的参数值,
局部变量
的值等。其操作方式类
全局变量和
局部变量
在内存中的区别
答:有区别。全局变量保存在内存的全局存储区中,占用静态的存储单元;
局部变量
保存在栈中,只有在所在函数被调用时才动态地为变量分配存储单元。 该题目考查的知识点是变量的存储类型及性质。C语言经过编译之后将内存分为以下几个区域: (1)栈(
stack
):由编译器进行管理,自动分配和释放,
存放
函数调用过程中的各种参数、
局部变量
、返回值以及函数返回地址。操作方式类似数据结
非技术区
1,076
社区成员
6,258
社区内容
发帖
与我相关
我的任务
非技术区
硬件/嵌入开发 非技术区
复制链接
扫一扫
分享
社区描述
硬件/嵌入开发 非技术区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章