见图,有关结构体的引用,
为什么选D呢,再麻烦把A,B,C代表什么说一下,谢谢
D:错误原因:等号两侧类型不一致,一个是student类型指针,一个是int型指针,除非用强制转换,否则不能直接相等
A:代表的是stu[0]中的num元素即20
B:代表的是stu[0],即student结构体类型{1001,20}
C:同A。
地址取成员用"->",变量去成员用"."
A、(p++)->num (p++)->num 对指针p做了加法运算操作 对一个指针的加减法 在不越界的范围内 等价于取 加减元素的下标 比如 (p++)->num 等价于 p[0]->num 然后p = &p[1]
B、p++ 同A
C、(*p).num (*p) 等价于p[0] 等价于stu[0] 是取第一个元素
D、p=&stu.age p是 struct student * 类型 stu.age是int类型 &stu.age是int *类型 类型不一致所以不正确