设有如下定义 struct{ int n; char c; } a[2],*p=a; 则以下错误引用结构体成员n的是

admin2019-07-25  15

问题 设有如下定义
      struct{ int n; char c; } a[2],*p=a;
    则以下错误引用结构体成员n的是

选项 A、(*a)->n
B、a[0].n
C、p->n
D、(*p).n

答案A

解析 若已定义了一个结构体变量和一个同一结构体类型的指针变量,并使该指针指向同类型的变量,则可用以下3种形式来引用结构体变量中的成员,其中结构体变量名也可以是已定义的结构体数组的数组元素:结构体变量名.成员名;指针变量名->成员名;(*指针变量名).成员名。题目中a为数组名是地址常量,不是指针变量,A选项引用错误。a[0]为变量名,B选项引用正确。p为指针,且正确的指向结构体变量,C选项引用正确。D选项符合第三种引用方式,引用正确。
转载请注明原文地址:https://kaotiyun.com/show/pdID777K
0

最新回复(0)