几个C语言问题,请教高手详细解释
1.
void fun5()
{
int array[]={1,3,5,7,9};
int *p=array;
int m,i,j;
m=*(p+1)*(p+1)[1];
i=*p++;
j=*p;
printf("fun5 m=%d\ni=%d\nj=%d\n",m,i,j);
}
//这条语句没有理解到他表达的意思;
若是*(p+1) * (p+1)[] ,那么(p+1)[]表达什么呀,p+1也应该指向3吧
没有搞懂,请高手们指点下
2.
void fun2()
{
struct Ta{
unsigned ba:1;
unsigned bb:4;
unsigned bc:5;
unsigned bd:2;
};
struct Tb{
unsigned char da;
unsigned char db;
};
union Tu{
struct Ta *sa;
struct Tb *sb;
};
union Tu Tdata;
struct Ta *pTa;
struct Tb *pTb;
Tdata.sb->da=0x10;
Tdata.sb->db=0xF0;
pTa=Tdata.sa;
pTa->ba=1;
pTa->bc=2;
pTa->bd=3;
pTb=Tdata.sb;
printf("0x%x,0x%x,0x%x",pTb->da,pTb->db,pTa->bb);
}
请问下这Ta是什么结构体
这题怎么解?
3.
void fun3()
{
char *p1=(char*)1024;
char *p2;
p2=p1;
*p2=55;
printf("%d,%d",*p1,p2);
}
执行到这里报错*p2=55;