C语言题目,求详细解释

structst{intn;structst*q;};structsta[3]={5,&a[1],7,&a[2],9,”\0"},*p;则下列表达式的值为6的是A。p++... struct st
{
int n;
struct st *q;
};
struct st a[3]={5,&a[1],7,&a[2],9,”\0"},*p;
则下列表达式的值为6的是
A。p++->n B.p->n++ C (*p).n++ D.++p->n
展开
 我来答
martinblack954
2011-06-22 · TA获得超过1490个赞
知道小有建树答主
回答量:591
采纳率:0%
帮助的人:233万
展开全部
应该是有一个p=a在前面吧?
没有的话,p地址不确定,4个都错吧。。。
有的话,应该是D~
追问
如果有,为什么选D
追答
p=a,表示p为a[0]地址,也就是说,单纯的p->n是5
然后对于4的答案
A,p++表示执行该表达式后,p向后移一个数据,即执行p->n以后,p将指向a[1]
B,p->n++ ,同理,执行操作后a[0]的n为6,但表达式的值为n的原值,5
C,同B
D,实际上,++与->两个操作符,->优先级高,即先取值,得5。然后执行前进行++操作,变6
丢丢的兜
2011-06-22
知道答主
回答量:8
采纳率:100%
帮助的人:9.5万
展开全部
如一楼所说,前面应该有个p=a;但我觉得奇了怪了,
指针++p先自加再引用,指针指向了a[1],D表达式的值与a[1],n一个意思吧,应该是7呀。呵,不知道怎么搞的?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式