A-A+
若有以下定义和语句 struct a { int n m;}; struct a st[3]
问题详情
若有以下定义和语句 struct a { int n,m;}; struct a st[3]={{1,20},{2,19},{3,21}}; struct a*p=st; 则以下错误的引用是
A.(p++)->n;
B.st[0].n;
C.(*p).n;
D.p=&st.m;请帮忙给出正确答案和分析,谢谢!
参考答案
正确答案:D
解析:可以用以下三种形式来引用结构体变量中的成员:结构体变量名.成员名、指针变量名->成员名和(*指针变量名).成员名。选项D)中“&st.m”取的是结构体中成员的地址而不是结构的地址。