堆區(qū)-可讀可寫
棧區(qū)-可讀可寫 &
局部變量芜茵、
全局區(qū)-可讀可寫 &
全局變量(所有文件可用)柒巫、靜態(tài)局部變量(static:當前文件可用)
文字常量-只讀
代碼區(qū)-只讀
二進制代碼绸吸、
char arr[128] = "hello world"; // 這種寫法是將字符串全部存在了棧區(qū)
char *p = "hello world"; // 這種是將字符串存在了文字常量區(qū)没陡,而將h的地址作為指針存在了棧區(qū)
編譯四階段
預處理 -> 編譯 -> 匯編 -> 鏈接
宏函數(shù)在預處理階段進行替換耀找;
*p 定義指針變量著榴,指針變量中存儲的是內(nèi)存地址洋幻,不是普通的數(shù)值讲竿;
*p 取p這個指針變量指向地址中的內(nèi)容拟杉;
&b 取地址庄涡;
int *arr[5]; // 指針數(shù)組,arr數(shù)組中五個元素都是指針搬设;
int (*arr)[5]; // 數(shù)組指針穴店,arr為指針變量,保存的是數(shù)組的首地址拿穴;