我正在寫一些C代碼,當遇到一個方法時,我想知道參數變量存儲在內存中的位置。 我瞭解以下內容:參數變量存儲在內存中的位置?
全局變量 - >存儲在靜態
靜態varables的代碼段 - >
局部自動變量(inside方法) - >存儲在堆棧
本地上靜態變量 - >存儲在堆棧中
局部常量變量 - >存儲在堆棧中
假設我的假設是正確的。
但是參數變量存儲在哪裏?例如:int *(int x,char * c);
謝謝!
編輯: 我知道,當我malloc的東西,它被放置在堆上,但是說我取消引用指針來獲得在指針位置值,是也存儲在堆或者是現在在堆棧中?
回答您的編輯:值仍然存儲在堆上。當你取消引用一個指針時,你觸發一個存儲器讀取訪問存儲在你的指針中的任何地址(無論是堆棧,堆等)。根據編譯器生成的機器碼,讀取值可能會臨時放置到CPU寄存器中以進行高效的進一步處理。 – 2013-04-30 16:59:02