一道c语言指针题,求大神解答,感谢
inta[]={5,8,7,6,2,7,3},y;int*p;p=&a[1];y=(*--p)++;printf(“%d,%d,%d\n”,y,*p,*p++);...
int a[]={5,8,7,6,2,7,3},y;
int *p;
p=&a[1];
y=(*--p)++;
printf(“%d,%d,%d\n”,y,*p,*p++); 展开
int *p;
p=&a[1];
y=(*--p)++;
printf(“%d,%d,%d\n”,y,*p,*p++); 展开
展开全部
int a[]={5,8,7,6,2,7,3},y;
int *p;
//p指向a[1](8)。
p=&a[1];
//--p,使p先自减1,p最后指向a[0]。于是(*--p)等于a[0],y=(*--p)++;等同于y=a[0]++;。y等于5,a[0]最后等于6。
y=(*--p)++;
//输出5,8,6,因为参数按从右往左压入栈中。即先算*p++,又p指向a[0],所以*p++输出6后,p指向a[1];再算*p,输出8;最后算y输出5。
printf(“%d,%d,%d\n”,y,*p,*p++);
int *p;
//p指向a[1](8)。
p=&a[1];
//--p,使p先自减1,p最后指向a[0]。于是(*--p)等于a[0],y=(*--p)++;等同于y=a[0]++;。y等于5,a[0]最后等于6。
y=(*--p)++;
//输出5,8,6,因为参数按从右往左压入栈中。即先算*p++,又p指向a[0],所以*p++输出6后,p指向a[1];再算*p,输出8;最后算y输出5。
printf(“%d,%d,%d\n”,y,*p,*p++);
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
结果5 8 6
追问
能不能说一下详细的过程,谢谢啦
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询