自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

C程序在內(nèi)存中的組織方式

存儲(chǔ) 存儲(chǔ)軟件 前端
學(xué)習(xí)任何東西,都不能了解就好,不能一知半解,畢竟大二全不如小而精,人才都是精通某一領(lǐng)域,在某一領(lǐng)域上作出貢獻(xiàn),更不能沒(méi)信心,一有難題解決不了,就失去信心,從而放棄,那是絕不可取的,如果這樣那么一輩子也做不了什么事。

對(duì)我本人來(lái)說(shuō),學(xué)習(xí)任何一種高級(jí)語(yǔ)言,總想知道高級(jí)語(yǔ)言是如何被編譯并載入內(nèi)存的,一個(gè)程序的運(yùn)行,在計(jì)算機(jī)內(nèi)存中是怎樣組織的等等問(wèn)題,總想打破砂鍋問(wèn)到底,有好多疑問(wèn),因此我就學(xué)習(xí)了匯編語(yǔ)言,匯編語(yǔ)言確實(shí)讓你能了解很多底層的東西,它可以直接跟寄存器接觸,內(nèi)存單元接觸,自己創(chuàng)建一個(gè)??臻g,也可以自己編寫(xiě)安裝自己需要的中斷例程,讓中斷向量表相應(yīng)的入口地址指向自己編寫(xiě)安裝的中斷例程,讓你了解什么是端口,怎樣通過(guò)匯編指令對(duì)這些端口進(jìn)行讀寫(xiě),讓你了解鍵盤(pán)即鼠標(biāo)的工作原理,自己編寫(xiě)鍵盤(pán)程序等等,確實(shí)很有意思,但是匯編有優(yōu)點(diǎn),缺點(diǎn)也不少,這里不多說(shuō),畢竟主要講的是C語(yǔ)言。

[[220437]]

學(xué)習(xí)任何東西,都不能了解就好,不能一知半解,畢竟大二全不如小而精,人才都是精通某一領(lǐng)域,在某一領(lǐng)域上作出貢獻(xiàn),更不能沒(méi)信心,一有難題解決不了,就失去信心,從而放棄,那是絕不可取的,如果這樣那么一輩子也做不了什么事。算了,侃這么多跟標(biāo)題無(wú)關(guān)的事,請(qǐng)大家原諒,下面正式介紹一下C語(yǔ)言在內(nèi)存中的組織方式,其實(shí)沒(méi)有過(guò)多要講,但是還是介紹一下吧!

一個(gè)可以執(zhí)行的C程序,一般說(shuō)來(lái)有四個(gè)區(qū)域組成,哪四個(gè)呢?你猜?當(dāng)然不可能要你猜,猜是猜不著的,那就說(shuō)出來(lái)吧:①、代碼段,程序運(yùn)行時(shí)執(zhí)行的機(jī)器指令,何為機(jī)器指令,也就是一連串的二進(jìn)制數(shù),電腦認(rèn)不得高級(jí)語(yǔ)言,必須被編譯等階段轉(zhuǎn)換成二進(jìn)制機(jī)器指令才能被機(jī)器所知曉,如if(a>b)…,它也會(huì)被編譯成機(jī)器指令(二進(jìn)制代碼),具體是什么樣的機(jī)器指令,說(shuō)實(shí)話我也不太清楚。②、靜態(tài)數(shù)據(jù)區(qū),包含程序運(yùn)行周期中一直存在的數(shù)據(jù),比如全局變量和靜態(tài)變量,什么字符串常量啊,等等。③、堆區(qū):程序運(yùn)行時(shí)動(dòng)態(tài)分配的存儲(chǔ)空間,一般由程序員分配和釋放,比如用malloc、calloc等。堆的分配方式類似于鏈表(以后會(huì)說(shuō)到),但是它跟數(shù)據(jù)結(jié)構(gòu)中的堆不是一回事,完了,差點(diǎn)又跑偏了,不說(shuō)了。④、當(dāng)然就是堆棧中的棧了,一般由系統(tǒng)自動(dòng)分配,其包含函數(shù)的調(diào)用信息,存放函數(shù)的參數(shù)值,還有就是局部變量的值,操作方式跟數(shù)據(jù)結(jié)構(gòu)中的棧很類似。

舉個(gè)類子:

int a; ①

char b; ②

int main(){

int b=10; ③

static int n=2; ④

char c[]={'a','b'}; ⑤

char *p="i love you"; ⑥

int *p=(int *)malloc(sizeof(int)); ⑦

}

上面一段程序①跟②,因?yàn)槭侨肿兞浚苋菀紫氲剿鼈冊(cè)陟o態(tài)數(shù)據(jù)區(qū)。③處的數(shù)據(jù)因?yàn)槭蔷植康?,所以在棧區(qū),④嘛,因?yàn)橛衧tatic修飾符修飾,靜態(tài)局部變量故在靜態(tài)數(shù)據(jù)區(qū),⑤不要說(shuō),也是在棧區(qū),局部字符數(shù)組,也是局部變量。⑥有所區(qū)別,指針變量p毋庸置疑在棧區(qū),但是后面的i love you是常量字符串,卻在靜態(tài)數(shù)據(jù)區(qū)。指針變量p指向字符串常量。⑦不多說(shuō),在堆區(qū)。

以上就是關(guān)于C程序在內(nèi)存中組織方式的簡(jiǎn)要介紹。

責(zé)任編輯:武曉燕 來(lái)源: 今日頭條
相關(guān)推薦

2010-01-25 14:56:08

C++程序

2018-08-24 10:16:23

內(nèi)存浮點(diǎn)數(shù)存儲(chǔ)

2022-08-06 16:33:01

C語(yǔ)言數(shù)組內(nèi)存

2010-05-27 10:05:08

EhcacheJava云計(jì)算

2010-01-25 18:15:52

2019-01-07 10:24:41

2024-01-18 08:38:34

.NET數(shù)組內(nèi)存管理

2020-11-16 09:28:41

函數(shù)內(nèi)存

2020-09-18 09:16:37

Redis緩存內(nèi)存

2023-11-17 11:40:51

C++內(nèi)存

2011-06-16 09:28:02

C++內(nèi)存泄漏

2010-02-04 15:41:10

C++內(nèi)存管理

2010-02-03 14:10:28

C++內(nèi)存邏輯區(qū)域

2020-03-17 17:49:58

C語(yǔ)言編程語(yǔ)言

2020-03-18 12:23:49

C語(yǔ)言編程語(yǔ)言

2024-01-09 09:23:12

指針C++

2011-08-29 10:35:53

反射方式C#

2019-09-29 00:25:11

CC++內(nèi)存泄漏

2024-04-01 11:30:57

C#拷貝

2009-06-18 11:48:07

Struts2POI生成文件
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)