27,511
社区成员




unsigned char buf[4]={0,0,12,1}; //12:00 星期一
struct time
{
unsigned char sec;
unsigned char min;
unsigned char hour;
unsigned char day;
};
struct time dat;
struct time *pbuf=&dat;
void main(void)
{
unsigned char i;
unsigned char *point=(unsigned char*)pbuf;
for(i=0;i<4;i++)
{
*point++=buf[i];
}
while(1);
}
#include <stdio.h>
unsigned char buf[4]={0,0,12,1}; //12:00 星期一
struct time
{
unsigned char sec;
unsigned char min;
unsigned char hour;
unsigned char day;
};
struct time dat;
struct time *pbuf=&dat;
void main(void)
{
unsigned char i;
unsigned char *point=(unsigned char*)pbuf;
for(i=0;i<4;i++)
{
*point++=buf[i];
}
while(1);
}
struct time
{
unsigned char sec;
unsigned char min;
unsigned char hour;
unsigned char day;
}dat1,dat2;
struct time *pbuf=&dat1;
pbuf++;
pbuf++相当于首地址+4 Byte,那么指向的是不是就是dat2了;
struct time
{
unsigned char sec;
unsigned char min;
unsigned char hour;
unsigned char day;
}dat[2]={{0,0,0,0},{1,1,1,1}};
struct time *pbuf=&dat;
pbuf++;
pbuf++指向的就是dat[1]了
第一种成不成立呢?
for(i=0;i<4;i++)
{
*point++=buf[i];
}
这条语句执行往后point应该指向第5个成员的地址,但是我结构体里面就4个成员?