作业帮 > 综合 > 作业

struct st{int x,int*y;}*p; int s[]={5,6,7,8} st a[]={10,&s[0

来源:学生作业帮 编辑:拍题作业网作业帮 分类:综合作业 时间:2024/06/02 21:05:10
struct st{int x,int*y;}*p; int s[]={5,6,7,8} st a[]={10,&s[0],20,&s[1]30,&[2],40,&s[3]} main( ) {
p=a;
cout
我是这样理解的:
st a[] = {.}实际上是a[0] = {10,&s[0]},a[1] = {20,&s[1]}.
p = a ;是将a的首地址赋值给p 也就是a[0]的地址,此时p指向a[0],p->x为10;
(++p)->x 是将指针p 加1之后取x的值,也就是a[1]的x值 为20;
*(++p)->y将p的值再加1,因为"->"的优先级比“*”高,所以会先执行->操作,得到*(&s[2]),取得s[2]的值为7;
最后一个基本同上,只是最后一个++操作,++8 为9;
不知道明白没有~