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中