程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C >> C語言問答 >> C語言的各種數據在內存中如何存儲?

C語言的各種數據在內存中如何存儲?

編輯:C語言問答

C語言的各種數據在內存中如何存儲?

C語言的各種數據在內存中如何存儲?如何讀取?

最佳回答:

變量可以存儲在內存中的不同地方,這依賴於它們的生存期。在函數外部定義的變量(全局變量或靜態外部變量)和在函數內部定義的static變量,其生存期就是程序運行的全過程,這些變量被存儲在數據段(datasegment)中。數據段是在內存中為這些變量留出的一段大小固定的空間,它分為兩部分,一部分用來存放初始化變量,另一部分用來存放未初始化變量。
在函數內部定義的auto變量(沒有用關鍵字static定義的變量)的生存期從程序開始執行其所在的程序塊代碼時開始,到程序離開該程序塊時為止。作為函數參數的變量只在調用該函數期間存在。這些變量被存儲在棧(stack)中。棧是內存中的一段空間,開始很小,以後逐漸自動增大,直到達到某個預定義的界限。在象DOS這樣的沒有虛擬內存(virtualmemory)的系統中,這個界限由系統決定,並且通常非常大,因此程序員不必擔心用盡棧空間。
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved