亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

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

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

變量的存儲空間分配情況

發布時間: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

盐池县| 白山市| 淮南市| 永善县| 兴义市| 黑龙江省| 大洼县| 棋牌| 荆门市| 泽州县| 策勒县| 资溪县| 潞城市| 台东市| 道真| 武穴市| 香河县| 抚顺县| 怀安县| 浮山县| 丹寨县| 达日县| 农安县| 南昌县| 阳原县| 宿迁市| 墨玉县| 大田县| 新巴尔虎左旗| 延安市| 广灵县| 营山县| 阿克陶县| 翁牛特旗| 合水县| 政和县| 资讯| 荣昌县| 江津市| 阳西县| 彝良县|