入棧和出棧top指針變化 函數(shù)中定義的對象是在棧中還是在堆中?
函數(shù)中定義的對象是在棧中還是在堆中?(stack)stack用于存儲函數(shù)(包括main函數(shù))內(nèi)部的局部變量、方法調(diào)用和函數(shù)參數(shù)值,由系統(tǒng)自動分配,速度一般較快;存儲地址連續(xù),棧容量有限,會導致溢出。(
函數(shù)中定義的對象是在棧中還是在堆中?
(stack)
stack用于存儲函數(shù)(包括main函數(shù))內(nèi)部的局部變量、方法調(diào)用和函數(shù)參數(shù)值,由系統(tǒng)自動分配,速度一般較快;存儲地址連續(xù),棧容量有限,會導致溢出。
(heap)
heap由corder手動分配和釋放。它由malloc、new和其他動態(tài)內(nèi)存應用程序語句使用。它還需要由用戶手動回收(或者在程序結束時由操作系統(tǒng)自動回收)。對于面向對象程序,任何對象,無論是成員變量、局部變量還是對象內(nèi)部的類變量,被新對象指向的對象都存儲在堆內(nèi)存中(但指針本身存在于堆棧中),速度一般比堆棧慢;存儲地址通常是鏈式的,所以內(nèi)存體積大,不會溢出。
我希望丹尼爾能指出我個人的理解和錯誤。非常感謝。