這個來自于古老的C語言概念,凡是在函數(shù)中用基本數(shù)據(jù)類型(string除外)申請的局部變量,也就是函數(shù)退出則這些變量就消亡的變量,包括函數(shù)自己的參數(shù)定義,都用棧內(nèi)存的方式構(gòu)造內(nèi)存,這樣做的目的是進入該函數(shù)、變量值進棧,函數(shù)退出自動退棧,這樣就自動完成了內(nèi)存申請和回收,這些棧空間的變量只能被該函數(shù)自己引用,其他函數(shù)不能引用。
而C語言的全局變量、JAVA的對象,也就是說如C語言用malloc()函數(shù),C++、JAVA等用new構(gòu)造的對象,都在堆方式組織的內(nèi)存中,這樣的目的是讓很多函數(shù)都能引用到這些存儲空間的值或者對象。存儲在堆空間的對象和數(shù)據(jù),需要編程者按需要釋放,如C語言用free(),C++則要析構(gòu)函數(shù),Java就有自動回收機制。
隨手寫的,有錯勿噴。