關於計算機存儲的小知識

 

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 00000010‬b  ,  *p 對 &b 賦值會將b當成是 int 類型,將高位00000001數據存儲到 低地址位&a中,將低位數據00000010‬ 存儲到高位地址 &b中

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章