zoukankan
html css js c++ java
关于局部变量存放在栈区的问题
昨天在看jvm运行态数据存放区域的时候,看到他的栈区用于存放局部变量,突然有个问题,为啥局部变量要放在栈中。似乎之前学C的时候,C的局部变量也是放在栈中,当时学写汇编的时候似乎没有这方面的问题。
好吧,来整理下。产生这个问题的主要原因是,局部变量为啥要用栈结构来保存,因为觉得栈访问的时候会pop,这样的话就会将局部变量给弄没了,这不是懵逼了么。后来仔细想了想当时自己写OS的时候的想法,其实这里访问的时候只是用栈指针来进行访问,并不会pop这种。
因为局部变量的大小都是确定的,并且位置也是固定的,所以可以利用栈来保存,并且可以用栈指针来访问。并且,当函数退出的时候,这个函数栈也就失效了,这个栈就会自动删除,所以不需要人为的删除或者利用GC来回收。
查看全文
相关阅读:
[CF1299B] Aerodynamic
[CF1338B] Edge Weight Assignment
[CF689C] Mike and Chocolate Thieves
[CF729C] Road to Cinema
[CF735C] Tennis Championship
[CF766C] Mahmoud and a Message
[CF797C] Minimal string
[CF798C] Mike and gcd problem
[CF818D] Multicolored Cars
《剑指Offer》面试题55:字符流中第一个不重复的字符
原文地址:https://www.cnblogs.com/sunrye/p/6504867.html
最新文章
牛客练习赛62
Codeforces Round #637 (Div. 1)
Codeforces Round #636 (Div. 3)
【bzoj3516】3516: 国王奇遇记加强版(递推)
“科大讯飞杯”第18届上海大学程序设计联赛春季赛暨高校网络友谊赛
【bzoj4001】[TJOI2015]概率论(卡特兰数+生成函数+数学期望)
【hdu5730】Shell Necklace(分治FFT)
【bzoj3625/cf438E】小朋友和二叉树(NTT+多项式开根)
【hdu5731】Solid Dominoes Tilings(打表+递推+容斥)
【cf755G】G. PolandBall and Many Other Balls(dp+生成函数+倍增)
热门文章
[CF1095E] Almost Regular Bracket Sequence
[CF1109B] Sasha and One More Name
[CF1136D] Nastya Is Buying Lunch
[CF1152C] Neko does Maths
[CF1157F] Maximum Balanced Circle
[CF1174D] Ehab and the Expected XOR Problem
[CF1250B] The Feast and the Bus
[CF1267J] Just Arrange the Icons
[CF1283E] New Year Parties
[CF1286A] Garland
Copyright © 2011-2022 走看看