runxinzhi.com
首页
百度搜索
关于局部变量存放在栈区的问题
昨天在看jvm运行态数据存放区域的时候,看到他的栈区用于存放局部变量,突然有个问题,为啥局部变量要放在栈中。似乎之前学C的时候,C的局部变量也是放在栈中,当时学写汇编的时候似乎没有这方面的问题。
好吧,来整理下。产生这个问题的主要原因是,局部变量为啥要用栈结构来保存,因为觉得栈访问的时候会pop,这样的话就会将局部变量给弄没了,这不是懵逼了么。后来仔细想了想当时自己写OS的时候的想法,其实这里访问的时候只是用栈指针来进行访问,并不会pop这种。
因为局部变量的大小都是确定的,并且位置也是固定的,所以可以利用栈来保存,并且可以用栈指针来访问。并且,当函数退出的时候,这个函数栈也就失效了,这个栈就会自动删除,所以不需要人为的删除或者利用GC来回收。
相关阅读:
shell基础
函数属性
this的使用
循环
正则表达式中的方法
判断是不是数组
ECMAScript5中数组方法
ECMAScript3中数组方法
break和continue、return的区别
用来枚举属性的对象工具函数
原文地址:https://www.cnblogs.com/sunrye/p/6504867.html
最新文章
【pytorch】使用cnn训练及测试mnist数据集
【pytorch】.item()的用法
位移运算
unsigned 和 signed 的区别
普通位运算
自增自减
关系和逻辑运算
用C语言写简单的交换机(三)
转义字符(C语言)
关于类型转换--C语言
热门文章
用C语言实现大小字母转换
HTML中的鼠标光标属性
HTML中的边框属性
CSS样式选择器
HTML中使用CSS的方法
HTML的表单
HTML的窗口分帧
HTML的表格标签
HTML的常用标签
html网页标题
Copyright © 2020-2023
润新知