#include <stdio.h>
typedef unsigned char u8;
typedef unsigned short u16;
typedef unsigned int u32;
typedef struct{
u8 c;
u8 d;
u8 e;
}DEMO2;
typedef struct{
u16 ID;
u8 a;
u8 b;
DEMO2 demo2;
}DEMO1;
int main()
{
DEMO1 demo1;
DEMO2 demo2;
u8 *p=(u8 *)(&demo1.ID);
printf("demo1.ID的地址是:%x \n",p);
printf("demo1.a的地址是:%x \n",&demo1.a);
printf("demo1.b的地址是:%x \n",&demo1.b);
printf("demo1.demo2.c的地址是:%x \n",&demo1.demo2.c);
printf("demo1.demo2.d的地址是:%x \n",&demo1.demo2.d);
printf("demo1.demo2.e的地址是:%x \n",&demo1.demo2.e);
printf("\r\n");
u8 len=sizeof(&demo1);
u8 len1=sizeof(&demo2);
printf("demo1的长度是:%d \r\n",len);
printf("demo2的长度是:%d \r\n",len1);
for(u8 i=0;i<len;i++)
{
printf("p%d的地址是:%x \n",i,p);
p++;
}
return 0;
}