版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
C的片內(nèi)存儲(chǔ)器內(nèi)容大綱一、C語(yǔ)言基礎(chǔ)回顧變量類(lèi)型、變量聲明、變量作用域二、什么是片內(nèi)存儲(chǔ)器內(nèi)存結(jié)構(gòu)概述、片內(nèi)存儲(chǔ)器定義、片內(nèi)存儲(chǔ)器特點(diǎn)三、片內(nèi)存儲(chǔ)器分類(lèi)程序存儲(chǔ)區(qū)、數(shù)據(jù)存儲(chǔ)區(qū)、堆棧存儲(chǔ)區(qū)四、程序存儲(chǔ)區(qū)代碼段、常量段、靜態(tài)區(qū)一、C語(yǔ)言基礎(chǔ)回顧本節(jié)回顧C(jī)語(yǔ)言中與內(nèi)存管理密切相關(guān)的基礎(chǔ)知識(shí),為深入理解片內(nèi)存儲(chǔ)器打下基礎(chǔ)。變量類(lèi)型整數(shù)型用來(lái)存儲(chǔ)整數(shù),例如10、-5、0等。浮點(diǎn)型用來(lái)存儲(chǔ)帶有小數(shù)的數(shù)字,例如3.14、-2.718等。字符型用來(lái)存儲(chǔ)單個(gè)字符,例如'A'、'b'、'!'等。變量聲明1數(shù)據(jù)類(lèi)型聲明變量時(shí),需要指定其數(shù)據(jù)類(lèi)型,例如int、float、char等。2變量名變量名應(yīng)遵循C語(yǔ)言的命名規(guī)則,通常使用字母、數(shù)字和下劃線,且首字母不能是數(shù)字。3初始化在聲明變量的同時(shí),可以對(duì)其進(jìn)行初始化,即為其賦予初始值。變量作用域全局變量在函數(shù)外部定義,作用域?yàn)檎麄€(gè)程序。局部變量在函數(shù)內(nèi)部定義,作用域僅限于該函數(shù)。二、什么是片內(nèi)存儲(chǔ)器片內(nèi)存儲(chǔ)器,又稱(chēng)主內(nèi)存,是計(jì)算機(jī)系統(tǒng)中用于存儲(chǔ)正在運(yùn)行的程序和數(shù)據(jù)的內(nèi)存。它由半導(dǎo)體器件構(gòu)成,可以快速讀取和寫(xiě)入數(shù)據(jù),并與CPU緊密協(xié)作。內(nèi)存結(jié)構(gòu)概述程序存儲(chǔ)區(qū)用于存儲(chǔ)程序代碼、常量數(shù)據(jù)和靜態(tài)變量。數(shù)據(jù)存儲(chǔ)區(qū)用于存儲(chǔ)全局變量、靜態(tài)局部變量和動(dòng)態(tài)分配的內(nèi)存空間。堆棧存儲(chǔ)區(qū)用于存儲(chǔ)函數(shù)調(diào)用過(guò)程中的局部變量、參數(shù)和返回值。片內(nèi)存儲(chǔ)器定義內(nèi)存概述內(nèi)存,也被稱(chēng)為主存儲(chǔ)器,是計(jì)算機(jī)系統(tǒng)中用于存儲(chǔ)程序和數(shù)據(jù)的臨時(shí)存儲(chǔ)器。它是CPU直接訪問(wèn)的存儲(chǔ)器,速度快,但容量有限。片內(nèi)存儲(chǔ)器片內(nèi)存儲(chǔ)器是集成在CPU芯片內(nèi)部的存儲(chǔ)器。它與CPU緊密結(jié)合,提供高速訪問(wèn)數(shù)據(jù)和指令,減少數(shù)據(jù)傳輸延遲。片內(nèi)存儲(chǔ)器特點(diǎn)速度快片內(nèi)存儲(chǔ)器直接與CPU相連,無(wú)需經(jīng)過(guò)其他設(shè)備,因此訪問(wèn)速度非??臁3杀靖咂瑑?nèi)存儲(chǔ)器由于工藝復(fù)雜,成本較高,通常容量也較小。易失性片內(nèi)存儲(chǔ)器中的數(shù)據(jù)在斷電后會(huì)丟失,因此需要定期保存到硬盤(pán)等外部存儲(chǔ)設(shè)備。三、片內(nèi)存儲(chǔ)器分類(lèi)根據(jù)存儲(chǔ)內(nèi)容和訪問(wèn)方式的不同,片內(nèi)存儲(chǔ)器可以分為三大類(lèi):程序存儲(chǔ)區(qū)、數(shù)據(jù)存儲(chǔ)區(qū)和堆棧存儲(chǔ)區(qū)。程序存儲(chǔ)區(qū)存放程序代碼的區(qū)域,如函數(shù)定義和變量定義。存放常量數(shù)據(jù)的區(qū)域,如常量字符串和數(shù)值。存放全局變量和靜態(tài)局部變量的區(qū)域,具有較長(zhǎng)的生命周期。數(shù)據(jù)存儲(chǔ)區(qū)全局變量在程序執(zhí)行期間始終存在,其值可以在整個(gè)程序中訪問(wèn)。靜態(tài)局部變量只在定義它的函數(shù)內(nèi)可見(jiàn),但其值在函數(shù)調(diào)用之間保持不變。動(dòng)態(tài)內(nèi)存分配在程序運(yùn)行時(shí)根據(jù)需要分配和釋放內(nèi)存,用于創(chuàng)建數(shù)組、結(jié)構(gòu)體和其他數(shù)據(jù)結(jié)構(gòu)。堆棧存儲(chǔ)區(qū)函數(shù)調(diào)用過(guò)程函數(shù)調(diào)用時(shí),會(huì)將函數(shù)參數(shù)、局部變量、返回值等信息壓入棧中。棧幀結(jié)構(gòu)每個(gè)函數(shù)調(diào)用都會(huì)創(chuàng)建一個(gè)棧幀,用于存儲(chǔ)函數(shù)執(zhí)行過(guò)程中的相關(guān)信息。棧區(qū)內(nèi)存管理?xiàng)^(qū)內(nèi)存管理是自動(dòng)的,由編譯器自動(dòng)分配和釋放內(nèi)存。四、程序存儲(chǔ)區(qū)程序存儲(chǔ)區(qū)是用于存放程序代碼、常量數(shù)據(jù)和靜態(tài)變量的區(qū)域。代碼段存放編譯后的機(jī)器代碼,用于執(zhí)行程序邏輯。常量段存放常量數(shù)據(jù),例如字符串字面量、枚舉類(lèi)型值等。靜態(tài)區(qū)存放全局變量和靜態(tài)局部變量,其生命周期貫穿整個(gè)程序運(yùn)行。代碼段存儲(chǔ)位置存放著程序的機(jī)器指令,即CPU執(zhí)行的代碼??蓤?zhí)行代碼代碼段中的指令是可執(zhí)行的機(jī)器代碼,它們由編譯器生成。只讀屬性代碼段通常是只讀的,以防止程序意外修改。常量段存放常量數(shù)據(jù)常量段包含程序中不可修改的常量值,例如字符串字面量和常量定義。程序執(zhí)行效率常量段通常位于內(nèi)存的只讀區(qū)域,提高程序執(zhí)行效率。靜態(tài)區(qū)存儲(chǔ)全局變量和靜態(tài)局部變量。在程序運(yùn)行期間一直存在。在編譯階段分配內(nèi)存空間。五、數(shù)據(jù)存儲(chǔ)區(qū)全局變量定義在函數(shù)外部的變量,作用域是整個(gè)程序。靜態(tài)局部變量在函數(shù)內(nèi)部定義,使用static關(guān)鍵字修飾,僅在該函數(shù)內(nèi)部有效。動(dòng)態(tài)內(nèi)存分配在程序運(yùn)行時(shí),使用malloc、calloc等函數(shù)分配內(nèi)存空間。全局變量定義在函數(shù)外部定義的變量稱(chēng)為全局變量,其作用域是整個(gè)程序.特點(diǎn)全局變量在程序運(yùn)行期間始終存在,即使程序執(zhí)行到定義全局變量的函數(shù)之后,它仍然存在.訪問(wèn)全局變量可以在程序中的任何函數(shù)中訪問(wèn)和修改.靜態(tài)局部變量1生命周期在函數(shù)執(zhí)行完畢后,不會(huì)被銷(xiāo)毀,而是保留其值。2作用域僅在定義它的函數(shù)內(nèi)部可見(jiàn)。3內(nèi)存分配在程序開(kāi)始執(zhí)行時(shí)分配,在程序結(jié)束時(shí)釋放。動(dòng)態(tài)內(nèi)存分配堆內(nèi)存動(dòng)態(tài)內(nèi)存分配從堆內(nèi)存中分配內(nèi)存空間。堆內(nèi)存是一塊更大的連續(xù)內(nèi)存區(qū)域,程序可以根據(jù)需要向系統(tǒng)申請(qǐng)和釋放內(nèi)存。malloc函數(shù)C語(yǔ)言提供malloc函數(shù)來(lái)分配內(nèi)存空間,例如:int*ptr=(int*)malloc(sizeof(int));該代碼分配了足夠存儲(chǔ)一個(gè)整數(shù)的內(nèi)存空間,并將該內(nèi)存地址賦給ptr指針。六、堆棧存儲(chǔ)區(qū)堆棧存儲(chǔ)區(qū)是程序運(yùn)行時(shí)用來(lái)存放局部變量、函數(shù)參數(shù)、返回地址以及中間計(jì)算結(jié)果等數(shù)據(jù)的區(qū)域。函數(shù)調(diào)用過(guò)程函數(shù)調(diào)用時(shí),系統(tǒng)會(huì)為函數(shù)創(chuàng)建一個(gè)新的棧幀,將函數(shù)參數(shù)、局部變量以及返回地址壓入棧中,函數(shù)執(zhí)行完畢后,再將棧幀彈出。棧幀結(jié)構(gòu)棧幀包含函數(shù)參數(shù)、局部變量、返回地址、保存的寄存器等信息,用于管理函數(shù)的調(diào)用和返回。函數(shù)調(diào)用過(guò)程1參數(shù)傳遞函數(shù)被調(diào)用時(shí),實(shí)參的值被傳遞給形參。2函數(shù)執(zhí)行函數(shù)體內(nèi)的代碼開(kāi)始執(zhí)行,使用形參進(jìn)行運(yùn)算。3返回結(jié)果函數(shù)執(zhí)行完畢后,可能返回一個(gè)值,或者不返回值。棧幀結(jié)構(gòu)函數(shù)調(diào)用過(guò)程函數(shù)調(diào)用時(shí),會(huì)創(chuàng)建一個(gè)新的棧幀來(lái)存儲(chǔ)函數(shù)的局部變量、參數(shù)和返回地址。棧幀結(jié)構(gòu)每個(gè)棧幀都包含以下部分:函數(shù)參數(shù)、局部變量、返回地址和函數(shù)調(diào)用者寄存器。棧區(qū)內(nèi)存管理1先進(jìn)先出棧區(qū)內(nèi)存遵循先進(jìn)先出的原則,后入棧的元素先出棧。2自動(dòng)分配函數(shù)調(diào)用時(shí),系統(tǒng)自動(dòng)分配??臻g,函數(shù)執(zhí)行完畢后自動(dòng)釋放。3有限容量棧區(qū)內(nèi)存容量有限,過(guò)度使用會(huì)導(dǎo)致棧溢出錯(cuò)誤。內(nèi)存分配注意事項(xiàng)局部變量與全局變量局部變量在函數(shù)內(nèi)部聲明,僅在函數(shù)內(nèi)部可見(jiàn)。全局變量在函數(shù)外部聲明,在整個(gè)程序中可見(jiàn)。靜態(tài)變量與動(dòng)態(tài)變量靜態(tài)變量在程序運(yùn)行期間一直占用內(nèi)存,而動(dòng)態(tài)變量在程序運(yùn)行期間可以根據(jù)需要分配或釋放內(nèi)存。局部變量與全局變量局部變量在函數(shù)內(nèi)部定義的變量,作用域僅限于函數(shù)內(nèi)部。當(dāng)函數(shù)執(zhí)行完畢后,局部變量會(huì)被銷(xiāo)毀。全局變量在函數(shù)外部定義的變量,作用域?yàn)檎麄€(gè)程序,可以在所有函數(shù)中訪問(wèn)。靜態(tài)變量與動(dòng)態(tài)變量靜態(tài)變量在程序編譯階段分配內(nèi)存,整個(gè)程序運(yùn)行期
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 雙減分層書(shū)面作業(yè)設(shè)計(jì)案例-方案-(含評(píng)價(jià)與反思)九年級(jí)化學(xué)(下)科粵版-結(jié)晶現(xiàn)象
- 企業(yè)綠化的典范企業(yè)辦公室室內(nèi)花園設(shè)計(jì)
- 創(chuàng)新思維的心理學(xué)基礎(chǔ)
- 創(chuàng)業(yè)企業(yè)融資策略的成功案例分享
- 作業(yè)設(shè)計(jì)在小學(xué)數(shù)學(xué)教學(xué)中的作用
- 2024年職業(yè)教育培訓(xùn)市場(chǎng)分析現(xiàn)狀
- 體育設(shè)施的舒適性改造促進(jìn)師生健康
- 健康飲食習(xí)慣的家庭傳承與教育
- 企業(yè)級(jí)實(shí)時(shí)數(shù)據(jù)審核平臺(tái)的市場(chǎng)分析
- 有線電視維修培訓(xùn)
- 決策自我效能感量表
- 蒙牛數(shù)字化 營(yíng)養(yǎng)世界
- 中藥封包療法在臨床中的應(yīng)用護(hù)理課件
- 水泥砼試模自校隨機(jī)表
- 徐州市2023-2024學(xué)年八年級(jí)上學(xué)期期末英語(yǔ)試卷(含答案解析)
- 山東省棗莊市滕州市2023-2024學(xué)年七年級(jí)上學(xué)期期末數(shù)學(xué)試題(含答案)
- 北京市東城區(qū)2023-2024學(xué)年高二上學(xué)期期末考試數(shù)學(xué)
- 20馬工程教材《公共財(cái)政概論》
- 如家酒店服務(wù)營(yíng)銷(xiāo)策略研究
- 部隊(duì)春節(jié)文藝匯演策劃方案
- 2021年直播復(fù)盤(pán)表
評(píng)論
0/150
提交評(píng)論