老有关问题,指针寻址有关问题,小弟我知道意思,但是不能用代码完整表示出来

老问题,指针寻址问题,我知道意思,但是不能用代码完整表示出来
#include<stdio.h>

void main()
{
int i = 10; //假设&i = 0x1000
printf("%0x\n",&i);//0x1000
int a = &i; //假设&a = 0x2000
printf("%0x\n",a);//0x1000
int p = &a; //假设&p = 0x3000
printf("%0x\n",p);//0x2000
        /*现在问题是我想用指针指向a的内存地址0x2000,打印出来的是i的地址0x1000,怎么表示*/
int *p;?
printf("%0x\n",*p);??

}
------解决方案--------------------
现在问题是我想用指针指向a的内存地址0x2000,打印出来的是i的地址0x1000,怎么表示

。。。指向a 就是int* pa = &a; 打印出来是i的地址1000?printf("%x", *p);
------解决方案--------------------
打印地址用%p

引用:
#include<stdio.h>

void main()
{
int i = 10; //假设&i = 0x1000
printf("%0x\n",&i);//0x1000
int a = &i; //假设&a = 0x2000
printf("%0x\n",a);//0x1000
int p = &a; //假设&p = 0x3000
printf("%0x\n",p);//0x2000
        /*现在问题是我想用指针指向a的内存地址0x2000,打印出来的是i的地址0x1000,怎么表示*/
int *p;?
printf("%0x\n",*p);??

}