请详细讲解:
(26)有以下程序段
struct st
{int x;int *y;}*pt;
int a[]={l,2},b[]={3,4};
struct st c[2]={10,a,20,b};
pt=c;
以下选项中表达式的值为11的是
A.*pt->y
B.pt->x
C.++pt->x
D.(pt++)->x
请详细讲解:
(26)有以下程序段
struct st
{int x;int *y;}*pt;
int a[]={l,2},b[]={3,4};
struct st c[2]={10,a,20,b};
pt=c;
以下选项中表达式的值为11的是
A.*pt->y
B.pt->x
C.++pt->x
D.(pt++)->x
struct st c[2]={10,a,20,b};
则c为一个结构体数组,相当于
c[0].x=10,c[0].y=数组a的首地址
c[1].x=20,c[1].y=数组b的首地址
pt=c;则pt为结构体数组c的首地址
A:pt->y相当于c[0].y,则这是指向的数组a的首地址,*pt->y则相当于a[0]=1
B:pt->x相当于c[0].x=10
C:pt->x相当于c[0].x=10,++pt->x执行自加1后=11
D:(pt++)先取值后自加,因此(pt++)->x相当于pt->x相当于c[0].x=10
因此答案应该是C