91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

變量的存儲空間分配情況

發布時間:2020-08-09 11:19:54 來源:網絡 閱讀:523 作者:銀河星君 欄目:編程語言

C程序一直由下列部分組成:

(1)正文段——CPU執行的機器指令部分;一個程序只有一個副本;只讀,防止程序由于意外事故而修改自身指令;

(2)初始化數據段(數據段)——在程序中所有賦了初值的全局變量,存放在這里。

(3)非初始化數據段(bss段)——在程序中沒有初始化的全局變量;內核將此段初始化為0。

(4)棧——增長方向:自頂向下增長;自動變量以及每次函數調用時所需要保存的信息(返回地址;環境信息)。

(5)堆——動態存儲分配。


一般認為在c中分為這幾個存儲區
(1)、棧 - 有編譯器自動分配釋放
(2)、堆 - 一般由程序員分配釋放,若程序員不釋放,程序結束時可能由OS回收
(3)、全局區(靜態區),全局變量和靜態變量的存儲是放在一塊的,初始化的全局變量和靜
態變量在一塊區域,未初始化的全局變量和未初始化的靜態變量在相鄰的另一塊區域。
- 程序結束釋放
(4)、另外還有一個專門放常量的地方。 - 程序結束釋放
在函數體中定義的變量通常是在棧上,用malloc, calloc, realloc等分配內存的函數分
配得到的就是在堆上。在所有函數體外定義的是全局量,加了static修飾符后不管在哪
里都存放在全局區(靜態區),在所有函數體外定義的static變量表示在該文件中有效,
不能extern到別的文件用,在函數體內定義的static表示只在該函數體內有效。另外,
函數中的"adgfdf"這樣的字符串存放在常量區。
比如:
int a = 0; 全局初始化區
char *p1; 全局未初始化區
main()
{
int b; 棧
char s[] = "abc";棧
char *p2; 棧
char *p3 = "123456"; 123456\0在常量區,p3在棧上。
static int c =0;全局(靜態)初始化區
p1 = (char *)malloc(10);
p2 = (char *)malloc(20);
分配得來得10和20字節的區域就在堆區。
strcpy(p1, "123456"); 123456\0放在常量區,編譯器可能會將它與p3所指向的"12345
6"優化成一塊。
}


向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

内丘县| 佛教| 高淳县| 义乌市| 汾西县| 上思县| 定边县| 五指山市| 金门县| 敖汉旗| 东光县| 宣武区| 罗田县| 甘肃省| 巫山县| 长治县| 西畴县| 崇义县| 玛纳斯县| 临沧市| 章丘市| 五台县| 延安市| 宁城县| 孟津县| 富民县| 大城县| 仪征市| 南木林县| 洛隆县| 波密县| 板桥市| 桦川县| 资溪县| 衢州市| 伊春市| 调兵山市| 修水县| 巴彦县| 娄烦县| 木里|