A-A+
若有以下程序段 structst{intn;structst*next;); structs
问题详情
若有以下程序段 structst{intn;structst*next;); structsta[3]={5,&a[1],7,&a[2],9,},*p; p=&a[0]; 则以下选项中值为6的表达式是
A.++(p->n)
B.(*p).n
C.p->n++
D.p->n
请帮忙给出正确答案和分析,谢谢!
参考答案
正确答案:A
选项A中表达式++(p->n)为前缀自加表达式,p->n和a[0].n等价,其他为5,前缀自加后值为6。选项B中表达式(*p).n和选项D的表达式p.>n含义相同,表示取结构指针p所指向的成员,因此值为5。选项C中表达式p->n++为后缀白加表达式,相当于(p->n)++,表达式值为5。