选择题
若有以下定义和语句:
struet st{int n;stmct st *next;};
struct st a[3]={5,&a[0],6,&a[1],7,&a[2]},*p;
p=&a[0];
则值为6的表达式是______。(提示:运算符“一>”的优先级高于“++”)
A、
(*p).n++
B、
p++->n
C、
p->n++
D、
(++p)->n
【正确答案】
D
【答案解析】
定义指向结构体变量的指针p,并将结构体数组首地址赋给p。(++p)->n,p指针自加1指向数组的第二个元素,其成员n=6,选项D正确。p++->n,p指向结构体数组的第一个元素,其成员n=5。p->n++,p指向结构体数组的第一个元素,其成员n=5,由于++是后缀,先取值,所以表达式为5,之后再自加1。(*p).n++,*p为结构体数组的第一个元素,其成员n=5,先取值,表达式为5。
提交答案
关闭