关于局部变量与堆栈的问题

xxne2002 2003-10-20 05:49:15
书上说函数内的局部变量是在堆栈上分配内存空间的,但堆栈上的数据不是不能随机访问的,那么函数是如何访问这些变量的;还有函数内的局部变量是在编译时压栈的,还是在运行时调用时分配存储空间的
...全文
156 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

69,369

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧