A-A+

若有以下定义和语句 struct a { int n m;}; struct a st[3]

2022-08-06 02:37:53 问答库 阅读 175 次

问题详情

若有以下定义和语句 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”取的是结构体中成员的地址而不是结构的地址。

考点:语句,定义