若有以下定义和语句 struct a{ int n m;}; struct a st[3]={{2 3} {4 5} {6 7}}; struct a*p=st;
语句,定义,错误
已帮助 人
若有以下定义和语句 struct a{ int n,m;}; struct a st[3]={{2,3},{4,5},{6,7}}; struct a*p=st;则以下错误的引用是A.(p++)->n; B.st[0].n; C.(*p).n; D.P=&st.m,
-
参考答案:D题目中给出了一个结构体,结构体类型名为 struct a。该结构体成员列表包括两个整型变量。随后定义了一个结构体数组st[3],该数组的大小为3,同时定义了一个结构体指针p,指向数组st。选项A为(p++)->n,是指先将p的指针执行++操作,指向st[1],然后得到该结构体变量中的值n。选项B为st[0].n,这个是标准的结构体数组变量引用,得到结构体数组变量st[0]中的值n。选项C为(*p).n,该表达式与p->n是等价的,得到当前指针所指结构体变量中的值n。选项D为p=&st.m,该选项是错误的。若p是一个定义过的指向结构体变量的指针,则用它指向结构体变量的某一个成员,编译时将指出地址的类型不匹配。
