struct st a[3],*p; a[0].n=5;a[0].next=&a[1];a[1].n=7;a[1].next=&a[2];a[2].n=9;a[2].next='\0';p=&
structsta[3],*p;a[0].n=5;a[0].next=&a[1];a[1].n=7;a[1].next=&a[2];a[2].n=9;a[2].next=...
struct st a[3],*p; a[0].n=5;a[0].next=&a[1];a[1].n=7;a[1].next=&a[2];a[2].n=9;a[2].next='\0';p=&a[0];
则以下表达式值为6的是
a.p++—〉n b.p—〉n++ c.++(*p).n d.++p—〉n 展开
则以下表达式值为6的是
a.p++—〉n b.p—〉n++ c.++(*p).n d.++p—〉n 展开
1个回答
2017-08-15
展开全部
选D
首先必须确定一点,就是->运算符比++运算符的优先级要高,然后,别忘了++在变量前和变量后的区别
按照这个算4个表达式的值
表达式A 等同于p->n 然后p=p+1,表达式值是p自增之前p->n的值也就是5
表达式B 首先计算p->n的值,也就相当于a[0].n(值是5),然后执行(a[0].n)++,注意是先取值再自增,因此表达式的值还是5
表达式C 首先计算(*p).n,那就相当于a[0].n(值是5),然后执行(a[0].n)++就跟表达式B一样了,表达式的值还是5
表达式D 是正确的,相当于++(a[0].n),值是6
首先必须确定一点,就是->运算符比++运算符的优先级要高,然后,别忘了++在变量前和变量后的区别
按照这个算4个表达式的值
表达式A 等同于p->n 然后p=p+1,表达式值是p自增之前p->n的值也就是5
表达式B 首先计算p->n的值,也就相当于a[0].n(值是5),然后执行(a[0].n)++,注意是先取值再自增,因此表达式的值还是5
表达式C 首先计算(*p).n,那就相当于a[0].n(值是5),然后执行(a[0].n)++就跟表达式B一样了,表达式的值还是5
表达式D 是正确的,相当于++(a[0].n),值是6
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询