1.在計算機中 stack 的地址位是 從低到高 (按聲明先後順序),heap 則是相反
2.在intel 平臺中存儲數據是 高位數對應低位地址
int main(){
char a=0,b=0;
char *pa = malloc(sizeof(char))
,pb = malloc(sizeof(char));
int *p = (int *)&b;
*p = 258;
printf("a = %d b = %d\n",a,b); // 1, 2
printf("a = %p b = %p\n",&a,&b);
printf("pa = %p pb = %p\n",&pa,&pb);
printf("hello linux %d %d \n",a,b);
return 0;
}
以上代碼由於 258D = 00000001 00000010b , *p 對 &b 賦值會將b當成是 int 類型,將高位00000001數據存儲到 低地址位&a中,將低位數據00000010 存儲到高位地址 &b中