char *t=NULL;
int *t1=NULL;
double *t2=NULL;
printf("%p\n",t);
printf("%p\n",t+1);
printf("%d\n",t);
printf("%d\n",t+1); //1
printf("%d\n",t1);
printf("%d\n",t1+1); //4
printf("%d\n",t2);
printf("%d\n",t2+1); //8
//不同类型指针步长使用
char tab[20];
int a=1056;
char *p=tab;
memcpy(tab,&a,sizeof(a));
printf("\n%d\n",*(int *)p);
printf("\n%d\n",*p);
// printf("\n%d\n",(*p<<24)|(*(p+1)<<16)|(*(p+2)<<8)|(*(p+3)<<0));
printf("\n%d\n",(*p<<0)|(*(p+1)<<8)|(*(p+2)<<16)|(*(p+3)<<24)); //小端
memcpy(&tab[2],&a,sizeof(a));
printf("\n%d\n",*(int *)(p+2) );
printf("\n%d\n",*(p+2));
//结构体步长
typedef struct
{
char num;
int len;
char tab[64];
char p;
}dug_t;
dug_t deg={'a',645,"ODSFJJ",23};
printf("\n%d\n",deg.len );
printf("\n%d\n",deg.num );
printf("\n%d\n",deg.p );
// printf("\n%d\n",*(int *)(char *)(°+1) );
printf("\n%d\n",*(int *)((char *)°+4) ); //对齐
printf("\n%d\n",*(char *)((char *)°+72) );
printf("\n%d\n",offsetof(dug_t,len) );
printf("\n%d\n",offsetof(dug_t,p) );
printf("\n%d\n",*(int *)((char *)°+offsetof(dug_t,len)) );
printf("\n%d\n",*(char *)((char *)°+offsetof(dug_t,p)) );