社区
C语言
帖子详情
关于局部变量与堆栈的问题
xxne2002
2003-10-20 05:49:15
书上说函数内的局部变量是在堆栈上分配内存空间的,但堆栈上的数据不是不能随机访问的,那么函数是如何访问这些变量的;还有函数内的局部变量是在编译时压栈的,还是在运行时调用时分配存储空间的
...全文
158
6
打赏
收藏
关于局部变量与堆栈的问题
书上说函数内的局部变量是在堆栈上分配内存空间的,但堆栈上的数据不是不能随机访问的,那么函数是如何访问这些变量的;还有函数内的局部变量是在编译时压栈的,还是在运行时调用时分配存储空间的
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
6 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
Darkay_Lee
2003-10-20
打赏
举报
回复
答案都已经被高手们说了,.^_^。
Jupin
2003-10-20
打赏
举报
回复
书上说函数内的局部变量是在堆栈上分配内存空间的,但堆栈上的数据不是不能随机访问的,那么函数是如何访问这些变量的;
=>函数调用时,先记录好sp指针,然后参数入栈,各个参数是根据在栈中与栈顶的相对偏移来访问的,函数调用结束时,恢复sp指针,参数消失。
还有函数内的局部变量是在编译时压栈的,还是在运行时调用时分配存储空间的
=>是在运行时分配存储空间的
TianGuangZao
2003-10-20
打赏
举报
回复
不同的变量都有自己的作用域和生存期。
“还有函数内的局部变量是在编译时压栈的,还是在运行时调用时分配存储空间的”
程序都是在被载入时才分配内存的,或分配部分内存,在运行时动态分配需要的内存。
编译期程序并没有执行,是不存在为变量分配空间,或入栈出栈之说的。
ttlb
2003-10-20
打赏
举报
回复
up
leyt
2003-10-20
打赏
举报
回复
关注中
daizh
2003-10-20
打赏
举报
回复
请参看这篇文章:http://www.csdn.net/develop/article/17/17420.shtm
java面向对象上篇
Java是面向对象的程序设计语言,提供了定义类,成员变量,方法等基本功能,...成员变量和
局部变量
• 隐藏与封装 • 深入理解构造器 • 继承与多态 • 继承与组合 • 初始化块
局部变量
与
堆栈
我们知道函数中的
局部变量
存储在
堆栈
之中,如下图所示,当
局部变量
1、2、3存到
堆栈
中后,
堆栈
指针ESP并没有下移,依然指向原来的位置。出现这种情况的原因是:
局部变量
进入
堆栈
并不是使用push而是使用mov操作,所以...
【C语言】关于
局部变量
在
堆栈
中的存储 - 只从表面浅浅认识一下
为了解释上面两个
问题
,我们首先要了解栈区的存放规则: 我们把栈区分成一个个小空间,当VS2019编译器在栈区存放
局部变量
的时候,先存放的变量放在上面,后声明的变量依次向下存放。但是,两块空间之间有没有空内存...
UCOS
局部变量
、任务
堆栈
UCOS中
局部变量
的生命周期: 任务一直存在,所以在任务中(非子函数)定义的
局部变量
不会死亡,在任务间的信息传递因
局部变量
未死亡而可行。在子函数中定义的
局部变量
在退出该函数时才死亡,在子函数中调用任务切换...
局部变量
进入
堆栈
并不是使用push而是使用mov操作,所以ESP无变化。如果函数把任何数据压入
堆栈
,那么
局部变量
被覆盖,解决方法函数代码开始添加(针对汇编语言),通过从ESP减某个值保留一定空间
局部变量
与
堆栈
weixin_342351352014-08-13 19:40:0074收藏 我们知道函数中的
局部变量
存储在
堆栈
之中,如下图所示,当
局部变量
1、2、3存到
堆栈
中后,
堆栈
指针ESP并没有下移,依然指向原来的...
C语言
69,371
社区成员
243,082
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章