棧的兩種存儲(chǔ)方式 棧的順序存儲(chǔ)空間怎么表示?
棧的順序存儲(chǔ)空間怎么表示?順序堆棧,即堆棧的順序存儲(chǔ)結(jié)構(gòu),使用一組具有連續(xù)地址的存儲(chǔ)單元依次存儲(chǔ)從堆棧底部到堆棧頂部的數(shù)據(jù)元素。同時(shí),還附加了一個(gè)指針top,以指示堆棧元素的頂部在順序堆棧中的位置。通
棧的順序存儲(chǔ)空間怎么表示?
順序堆棧,即堆棧的順序存儲(chǔ)結(jié)構(gòu),使用一組具有連續(xù)地址的存儲(chǔ)單元依次存儲(chǔ)從堆棧底部到堆棧頂部的數(shù)據(jù)元素。同時(shí),還附加了一個(gè)指針top,以指示堆棧元素的頂部在順序堆棧中的位置。通常使用top=0表示空堆棧。一般來(lái)說(shuō),初始化空堆棧時(shí),不應(yīng)限制堆棧的最大容量。更合理的方法是:首先為堆棧分配一個(gè)基本的容量,然后在應(yīng)用過(guò)程中當(dāng)堆??臻g不足時(shí)擴(kuò)展堆棧。空堆棧的表達(dá)式是s.top==s.base。
什么是棧存儲(chǔ)區(qū)?
在C內(nèi)存中分為四個(gè)區(qū)域,分別是堆、堆棧、靜態(tài)存儲(chǔ)區(qū)和常量存儲(chǔ)區(qū)
1。堆棧是編譯器在需要時(shí)分配的變量的存儲(chǔ)區(qū)域,在不需要時(shí)自動(dòng)清除。其中的變量通常是局部變量、函數(shù)參數(shù)等。堆,也稱(chēng)為空閑存儲(chǔ)區(qū),是在程序執(zhí)行期間動(dòng)態(tài)分配的,如果程序員不釋放新的,那么操作系統(tǒng)會(huì)在程序結(jié)束后自動(dòng)回收它。如果堆對(duì)象被分配了,但是忘記釋放,如果對(duì)象被釋放了,但是相應(yīng)的指針沒(méi)有設(shè)置為null,那么內(nèi)存就會(huì)泄漏,指針是“懸掛指針”
3。靜態(tài)存儲(chǔ)區(qū)。所有靜態(tài)對(duì)象和全局對(duì)象都分配在靜態(tài)存儲(chǔ)區(qū)域中。
4。固定存儲(chǔ)區(qū)域。這是一個(gè)特殊的儲(chǔ)藏區(qū)。它們存儲(chǔ)的是常量,不能修改
](當(dāng)然可以通過(guò)不適當(dāng)?shù)姆绞叫迯?fù),方法很多)
常量字符串存儲(chǔ)在靜態(tài)存儲(chǔ)中,并返回常量字符串的第一個(gè)地址