堆區(qū)-可讀可寫(xiě)
棧區(qū)-可讀可寫(xiě) &
局部變量、
全局區(qū)-可讀可寫(xiě) &
全局變量(所有文件可用)、靜態(tài)局部變量(static:當(dāng)前文件可用)
文字常量-只讀
代碼區(qū)-只讀
二進(jìn)制代碼、
char arr[128] = "hello world"; // 這種寫(xiě)法是將字符串全部存在了棧區(qū)
char *p = "hello world"; // 這種是將字符串存在了文字常量區(qū),而將h的地址作為指針存在了棧區(qū)
編譯四階段
預(yù)處理 -> 編譯 -> 匯編 -> 鏈接
宏函數(shù)在預(yù)處理階段進(jìn)行替換;
*p 定義指針變量,指針變量中存儲(chǔ)的是內(nèi)存地址,不是普通的數(shù)值;
*p 取p這個(gè)指針變量指向地址中的內(nèi)容;
&b 取地址;
int *arr[5]; // 指針數(shù)組,arr數(shù)組中五個(gè)元素都是指針;
int (*arr)[5]; // 數(shù)組指針,arr為指針變量,保存的是數(shù)組的首地址;