试题题干
struct st
{ int i;int j;}
main()
{ struct st m[3]={{10,1},{20,2},{30,3}},*p;
p=m;
printf("%d\n",(*++p).j);
}
参考答案
试题解析
p=m;是指针变量指向结构体类型数组m,*++p是先使指针变量p加1,再取新的指针变量p所指向地址的内容,即(*++p).j等价于m[1].j,因为m[1].j的值为2,所以输出的(*++p).j的值为2。
struct st
{ int i;int j;}
main()
{ struct st m[3]={{10,1},{20,2},{30,3}},*p;
p=m;
printf("%d\n",(*++p).j);
}
p=m;是指针变量指向结构体类型数组m,*++p是先使指针变量p加1,再取新的指针变量p所指向地址的内容,即(*++p).j等价于m[1].j,因为m[1].j的值为2,所以输出的(*++p).j的值为2。