資料型別總結
資料型別可理解為建立變數的模具(模子);是固定記憶體大小的別名。
資料型別的作用:編譯器預算物件(變數)分配的記憶體空間大小
資料型別大小計算(sizeof)
可以給已存在的資料型別起別名typedef
記憶體四區模型
靜態儲存區和堆區的一些理解:
#include
#include
#include
char
*getstr1()
char
*getstr2()
intmain()
上述函式示意圖
堆區和棧區
#define _crt_secure_no_warnings
#include
#include
#include
char
*get_num
(int num)
return p1;
}char
*get_num2()
intmain()
else
//printf("tmp=%s /n", tmp);
tmp =
get_num2()
;//系統呼叫完這個函式後,會把它析構,那麼tmp指向原來buf陣列的首位址就會出錯
printf
("tmp=%s /n"
, tmp)
;//這裡會列印亂碼
堆疊的開口屬性測試
#define _crt_secure_no_warnings
#include
#include
#include
//一般認為:棧的開口向下
堆的開口朝上
//buf的記憶體位址buf+1,永遠向上
void
main()
;printf
("&buf[1]= %d ,&buf[2]= %d \n"
,&buf[1]
,&buf[2]
);printf
("&a: %d =,&b :%d "
,&a,
&b);
system
("pause");
return
;}```
![在這裡插入描述]
**函式呼叫模型*
*如圖所示 main是主函式 fa fb 是被呼叫函式
![在這裡插入描述]
記憶體四區模型
記憶體可以先粗略的分為四個區,分別是 區,資料區,棧區和堆區。其中,資料區可以分為全域性區 靜態區 常量區。資料區內容的生命週期從程式開始到程式終止 棧區的內容從函式左括號開始,到右括號為止,函式結束後,記憶體自動釋放 堆區的內容由程式設計師自己開闢,手動釋放。區 程式指令 資料區 全域性區 靜態區...
C語言記憶體四區模型分析
圖1 1 記憶體四區模型是c語言學習的乙個重點也是乙個難點,大多程式設計師往往注重 的編寫而不注重 在執行中所進行的記憶體的變化而導致程式出現問題,嚴重時導致程式失控崩潰.圖1 1很直觀的表示記憶體當中儲存的資料型別,以及記憶體之間的關聯。1.c語言的記憶體區分 1.1 記憶體四區 1.1.1 區 ...
c語言記憶體四區( )
圖1 記憶體四區模型 流程說明 1 作業系統把物理硬碟 load到記憶體 2 作業系統把c 分成四個區 3 作業系統找到main函式入口執行 乙個由c c 編譯的程式占用的記憶體分為以下幾個部分 1 棧區 stack 由編譯器自動分配釋放 存放函式的引數值,區域性變數的值等。其操作方 式類似於資料結...