首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

TC学习记录之——指针,变量,数组,程序段地址、堆栈段地址与偏移的关系,该如何处理

2012-05-28 
TC学习记录之——指针,变量,数组,程序段地址、堆栈段地址与偏移的关系#includestdio.hint main(void){long

TC学习记录之——指针,变量,数组,程序段地址、堆栈段地址与偏移的关系
#include<stdio.h>
int main(void)
{
long int bl=0x12345678;
int sz[2],*ls1,*ls2,*ls3,huge *main_add=main,far *sz_add=sz,far *bl_add=bl;
system("cls");
printf("&main=0x%x &sz_add=0x%x &bl_add=0x%x\n",&main,&sz_add,&bl_add);
ls1=&main_add;/*取得far main_add指针基地址,低位两字节为偏移量*/
ls2=&sz_add;
ls3=&bl_add;
printf("&main_add=0x%x &sz_add=0x%x bl_add=%x\n",&main_add,&sz_add,&bl_add);
printf("main_add_0x%x=ip=0x%x main_add_0x%x=cs=0x%x \nsz_add_0x%x=sp=0x%x sz_add_0x%x=ss=0x%x \nbl_add_0x%x=0x%x bl_add_0x%x=0x%x \n",ls1,*ls1,ls1+1,*(ls1+1),ls2,*ls2,ls2+1,*(ls2+1),ls3,*ls3,ls3+1,*(ls3+1));
/*ls+1——指针地址+1(注意在TC中,int指针地址是以2字节作为一个计算单位的)得到far main_add指针的高位字节,即可取得段地址*/
getch();
return 0;
}

[解决办法]
楼主想表达什么意思i?

热点排行