C語言關於資料存放問題

2021-09-26 07:45:44 字數 513 閱讀 2086

在linux作業系統程式設計中,通常會分配4g的虛擬位址空間給使用者,其中又分為了使用者態和核心態,使用者態中有棧空間,堆空間,資料段和**段等等,棧空間主要存放了定義的區域性變數,形參和呼叫的函式等,而堆空一般用於函式malloc申請的記憶體,(realloc作用是把申請的記憶體連線起來形成連續的記憶體區域),**段存放了**,資料段主要存放了全域性變數,結構體,常量等。

在程式中使用資料也需要注意: char *s = 「helloworld」 其中字串存放在資料段的只讀取,是常量不可修改,char s[32] = 「helloworld」 定義了字串,在(棧)空間可修改。

const函式修飾了唯讀變數,表示不能通過變數名修改,但可以通過位址修改。

例:char *s;

//strcpy(s,「helloworld」);//段錯誤

s= 「helloworld」;//字串常量

char ch[32] = ;

//ch = 「helloworld」;

strcpy(ch,「helloworld」);

C語言 關於各類變數的存放資訊

根據下面的 填寫 整數算2位元組,字元1位元組,指標4位元組。每個區域的起始位址都是0,記憶體按2位元組編址。2儲存在常量區,num儲存在全域性區,兩個都是整形佔2位元組。void main uestc 和10儲存在常量區,各佔6和2個位元組 char str2 chengdu chengdu 儲存...

C 用陣列存放資料

我們剛學習c 的時候,老師會叫我們去做一些小系統出來,比如說學生成績管理系統,圖書管理系統,通訊錄之類的。現在我就用做乙個簡單的通訊錄來舉例吧 來來來,先上 程式功能 實現學生通訊錄的增 刪 改 查。include includeusing namespace std define stulen 1...

c語言中需要記憶體來存放資料。而內

1.靜態儲存區分為 唯讀資料 readonly data 區 以讀寫資料 rw data 區 未初始化區 bss 它們都是在程式編譯連線階段確定的,在程式執行的階段不會改變。2.動態儲存區分為堆和棧。都是程式執行的過程中動態分配的,大小也隨之動態變化。從記憶體管理的實現的角度看來,堆使用的鍊錶實現的...