欧美三区_成人在线免费观看视频_欧美极品少妇xxxxⅹ免费视频_a级毛片免费播放_鲁一鲁中文字幕久久_亚洲一级特黄

DS計(jì)劃C深入學(xué)習(xí)項(xiàng)目:【總結(jié)】【變量】變量的

系統(tǒng) 2449 0

如果要加入此計(jì)劃 :

1、 方式 1 :加入 QQ 群: 93684322

2、 方式 2 :加入 CSDN 群組: DS 計(jì)劃

1.1 變量存儲(chǔ)域

1.1.1 一個(gè)示例

pang123hui首先提供了一個(gè)網(wǎng)上流傳的學(xué)習(xí)代碼示例:

int a = 0; //全局區(qū)

void main()

{

int b; //棧

char s[] = “abc”; //s在棧,abc在文字常量區(qū)

char *p1,*p2; //棧

char *p3 = "123456"; //123456在常量區(qū),p3在棧上

static int c =0; //全局區(qū)

p1 = (char *)malloc(10); //p1在棧,分配的10字節(jié)在堆

p2 = (char *)malloc(20); //p2在棧,分配的20字節(jié)在堆

strcpy(p1, "123456"); //123456放在常量區(qū)

}

這個(gè)代碼示例中出現(xiàn)了“全局區(qū)”,“棧”,“文字常量區(qū)”,“堆”等詞語。為了統(tǒng)一,我們使用《C專家編程》中的說法:堆棧段,BSS段,數(shù)據(jù)段,文本段。

各個(gè)段的作用如下:

1、 文本段:包含程序的指令,它在程序的執(zhí)行過程中一般不會(huì)改變。

2、 數(shù)據(jù)段:包含了經(jīng)過初始化的全局變量和靜態(tài)變量,以及他們的值。

3、 BSS段:包含未經(jīng)初始化的全局變量和靜態(tài)變量。

4、 堆棧段:包含了函數(shù)內(nèi)部聲明的局部變量。

當(dāng)然,上面段的作用不僅于此,具體的作用會(huì)在下面的知識(shí)點(diǎn)中介紹。

1.1.2 通過代碼測(cè)試變量的存儲(chǔ)位置

Linux下可以通過系統(tǒng)命令“size”查看可以執(zhí)行程序各個(gè)段的大小。但是,可執(zhí)行程序中的段結(jié)構(gòu)和運(yùn)行中程序在內(nèi)存中的段結(jié)構(gòu)并不完全相同,但是有一定的映射關(guān)系。具體如下圖所示(圖片信息來自《C專家編程》):

wps_clip_image-696

下面通過代碼示例和“size”來研究變量的存儲(chǔ)區(qū)域。

test.c

int main()

{

return 1;

}

編譯,并且查看可執(zhí)行程序各個(gè)段的大小:

wps_clip_image-779

更改test.c:

int g_data;

int main()

{

return 1;

}

編譯,并且查看可執(zhí)行程序各個(gè)段的大小:

wps_clip_image-849

可以發(fā)現(xiàn),文本段,數(shù)據(jù)段都沒有發(fā)送變化,而BSS段增加了4個(gè)字節(jié)。

結(jié)論1:未初始化的全局變量保存在BSS段中

繼續(xù):

int g_data = 1;

int main()

{

return 1;

}

編譯:

wps_clip_image-958

可以發(fā)現(xiàn),BSS段和文本段相同,而數(shù)據(jù)段增加了4個(gè)字節(jié)。

結(jié)論2:經(jīng)過初始化的全局變量保存在數(shù)據(jù)段中

繼續(xù):

int main()

{

static int g_data;

return 1;

}

編譯:

wps_clip_image-1066

可以發(fā)現(xiàn),文本段,數(shù)據(jù)段都沒有發(fā)送變化,而BSS段增加了4個(gè)字節(jié)。

結(jié)論3:未初始化的靜態(tài)變量保存在BSS段中

繼續(xù):

int main()

{

static int g_data = 1;

return 1;

}

編譯:

wps_clip_image-1183

可以發(fā)現(xiàn),BSS段和文本段相同,而數(shù)據(jù)段增加了4個(gè)字節(jié)。

結(jié)論4:經(jīng)過初始化的靜態(tài)變量保存在數(shù)據(jù)段中

繼續(xù):

int main()

{

int i_data = 1;

return 1;

}

編譯:

wps_clip_image-1288

可以發(fā)現(xiàn),BSS段和和數(shù)據(jù)段相同,而文本段增加了16個(gè)字節(jié)。局部變量會(huì)在執(zhí)行的時(shí)候在堆棧段中生成,函數(shù)執(zhí)行完畢后釋放。

結(jié)論5:函數(shù)內(nèi)部聲明的局部變量保存在堆棧段中

繼續(xù):

const int g_data = 1;

int main()

{

return 1;

}

編譯:

wps_clip_image-1430

把全局變量定義為“const”后,也許你會(huì)感到奇怪,怎么BSS段和數(shù)據(jù)段都沒有發(fā)生變化,而文本段卻增加了4個(gè)字節(jié)。

結(jié)論6:const修飾的全局變量保存在文本段中

那么,const的局部變量?

繼續(xù):

int main()

{

const int i_data = 1;

return 1;

}

編譯:

wps_clip_image-1587

結(jié)論7:const修飾的局部變量保存在堆棧段中

繼續(xù):

char *pstr = "";

int main()

{

return 1;

}

編譯:

wps_clip_image-1666

在做一下更改:

char *pstr = "123456789";

int main()

{

return 1;

}

編譯:

wps_clip_image-1733

可以發(fā)現(xiàn),前后數(shù)據(jù)段和BSS段大小均未發(fā)生變化,而文本段增加了9個(gè)字節(jié)。

結(jié)論8:字符串常量保存在文本段中

1.1.3 結(jié)論

1、 經(jīng)過初始化的全局變量和靜態(tài)變量保存在數(shù)據(jù)段中。

2、 未經(jīng)初始化的全局變量和靜態(tài)變量保存在BSS段。

3、 函數(shù)內(nèi)部聲明的局部變量保存在堆棧段中。

4、 const修飾的全局變量保存在文本段中,const修飾的局部變量保存在堆棧段中。

5、 字符串常量保存在文本段中。

1.1.4 擴(kuò)展閱讀

《C專家編程》第6章——詳細(xì)介紹各個(gè)段的作用。

DS計(jì)劃C深入學(xué)習(xí)項(xiàng)目:【總結(jié)】【變量】變量的存儲(chǔ)域


更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號(hào)聯(lián)系: 360901061

您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長(zhǎng)非常感激您!手機(jī)微信長(zhǎng)按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對(duì)您有幫助就好】

您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺我的文章對(duì)您有幫助,請(qǐng)用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長(zhǎng)會(huì)非常 感謝您的哦!!!

發(fā)表我的評(píng)論
最新評(píng)論 總共0條評(píng)論
主站蜘蛛池模板: 精品免费久久久久久成人影院 | 成人精品网| 亚洲视频在线观看地址 | 国产精品自在线拍国产 | av免费观看网站 | 亚洲va欧美va天堂v国产综合 | 日本高清无遮挡 | www伊人 | 91中文字幕在线 | 亚洲伊人色一综合网 | 亚洲国产精品一区 | 无遮挡又黄又刺激的视频 | 超碰激情 | 久久涩涩| 在线欧美日韩国产 | 精品人成 | 精品国产第一国产综合精品 | 欧美精品久久久久久久久老牛影院 | 亚洲欧美日韩中文字幕在线不卡 | 国产91久久精品一区二区 | 国内精品视频 | 三级网站在线播放 | 日本黄页网站免费 | 边摸边吃奶边做激情叫床 | 亚洲啊v在线观看 | 成人在线| 国产亚洲精品久久久久久无码网站 | 国内精品免费一区二区观看 | 欧美午夜免费观看福利片 | 嫩草99| 综合久久亚洲 | 欧美一级毛片免费播放器 | 国产精品国产a级 | 一级黄色一级片 | 久久综合狠狠综合久久 | 色www精品视频在线观看 | 日本一道本视频 | 色亚洲色图 | 香蕉久久一区二区不卡无毒影院 | 91精品国产一区二区 | 91资源在线 |