支持子程序調(diào)用的數(shù)據(jù)結(jié)構(gòu)是是棧,棧支持子程序調(diào)用。棧是一種只能在一端進(jìn)行插入或刪除的線性表,在主程序調(diào)用子函數(shù)時要保存主程序的當(dāng)前狀態(tài),符合棧的特性。棧是一種只能在一端進(jìn)行插入或刪除的線性表。
棧是一種具有后進(jìn)先出性質(zhì)的數(shù)據(jù)結(jié)構(gòu),也就是說后存放的先取,先存放的后取。這就如同要取出放在箱子里面底下的東西(放入的比較早的物體),首先要移開壓在它上面的物體(放入的比較晚的物體)。內(nèi)存中的棧區(qū)處于相對較高的地址以地址的增長方向?yàn)樯系脑?,棧地址是向下增長的。棧中分配局部變量空間,堆區(qū)是向上增長的用于分配程序員申請的內(nèi)存空間。另外還有靜態(tài)區(qū)是分配靜態(tài)變量,全局變量空間的;只讀區(qū)是分配常量和程序代碼空間的;以及其他一些分區(qū)。
由于棧上的空間是自動分配自動回收的,所以棧上的數(shù)據(jù)的生存周期只是在函數(shù)的運(yùn)行過程中,運(yùn)行后就釋放掉,不可以再訪問。棧在Windows下,棧是向低地址擴(kuò)展的數(shù)據(jù)結(jié)構(gòu),是一塊連續(xù)的內(nèi)存的區(qū)域。這句話的意思是棧頂?shù)牡刂泛蜅5淖畲笕萘渴窍到y(tǒng)預(yù)先規(guī)定好的,在 WINDOWS下,棧的大小是2M(也有的說是1M,總之是一個編譯時就確定的常數(shù)),如果申請的空間超過棧的剩余空間時,將提示overflow。因此,能從棧獲得的空間較小。
聲明:本網(wǎng)頁內(nèi)容旨在傳播知識,若有侵權(quán)等問題請及時與本網(wǎng)聯(lián)系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com