zoukankan
html css js c++ java
关于局部变量存放在栈区的问题
昨天在看jvm运行态数据存放区域的时候,看到他的栈区用于存放局部变量,突然有个问题,为啥局部变量要放在栈中。似乎之前学C的时候,C的局部变量也是放在栈中,当时学写汇编的时候似乎没有这方面的问题。
好吧,来整理下。产生这个问题的主要原因是,局部变量为啥要用栈结构来保存,因为觉得栈访问的时候会pop,这样的话就会将局部变量给弄没了,这不是懵逼了么。后来仔细想了想当时自己写OS的时候的想法,其实这里访问的时候只是用栈指针来进行访问,并不会pop这种。
因为局部变量的大小都是确定的,并且位置也是固定的,所以可以利用栈来保存,并且可以用栈指针来访问。并且,当函数退出的时候,这个函数栈也就失效了,这个栈就会自动删除,所以不需要人为的删除或者利用GC来回收。
查看全文
相关阅读:
二维数组中的查找
循环语句
掷骰子游戏和条件语句
类型转换与键盘输入
运算符(2)
运算符(1)
面向对象(2)
面向对象(1)
理解几种排序方法
优盘、移动硬盘简便制作启动盘
原文地址:https://www.cnblogs.com/sunrye/p/6504867.html
最新文章
挖一挖MongoDB的备份与还原(实现指定时间点还原和增量备份还原)
python语法学习第十一天--迭代器
python语法学习第十天--魔法方法
python语法学习第十天--类与对象相关的BIF、魔法方法
python语法学习第十天--类与对象
python语法学习第九天--else和with语句
python第七天--文件练
python学习第八天--异常和异常处理
python学习第七天--文件系统常用模块os,os.path,pickle
python语法学习第七天--文件
热门文章
python语法学习第六天--集合
leetcode| 51. N皇后问题
leetcode| 125. 验证回文串
旋转数组的最小数字(两段非递减数列找最小值)
用两个栈实现队列
leetcode| 295. 数据流的中位数
leetcode| 62. 不同路径
重建二叉树
从尾到头打印链表
替换空格
Copyright © 2011-2022 走看看