c语言 int a[]={1,2,3,4,5,6,7,8,9,10},*p=a,则值为3的是

Ap+=2,*(p++)Bp+=2,*++pCp+=3,*p++Dp+=2,++*p请详细解答一下... A p+=2,*(p++) B p+=2,*++p C p+=3,*p++ D p+=2,++*p
请详细解答一下
展开
 我来答
Arthurzss
2013-11-25 · TA获得超过1661个赞
知道小有建树答主
回答量:496
采纳率:100%
帮助的人:239万
展开全部
答案A.
数组定义是a[0]=1,a[1]=2,a[2]=3, ...,a[9]=10
A. p += 2使p指向a[2], *(p++)表示先取*p的值, 然后p增加1(指向a[3]), 所以取得的值是a[2]=3
B. p += 2使p指向a[2], *++p表示先p增加1(指向a[3]),然后取*p的值,所以是a[3]=4
C. p += 3使p指向a[3], *p++表示先取*p的值, 然后p增加1(指向a[4]), 所以取得的值是a[3]=4
D. p += 2使p指向a[2], ++*p对*p的值增加1, 所以取得的值是a[2]=a[2]+1=4

还有一种写法是(*p)++, 表示先取*p的值, 这个值再增加1
传薪网络
推荐于2017-10-10 · TA获得超过1355个赞
知道小有建树答主
回答量:635
采纳率:92%
帮助的人:241万
展开全部
  这是一个指针求值的问题,答案应该是A
  答案分析如下:
  首先,所有的逗号运算符,是从左向右进行的,其值为右边结果计算的值
  A p+=2,*(p++) 先计算p+=2 再计算*p 最后计算p++ 表达式的值在第二步计算确定的 为p[2] = a[2] = 3。表达式计算完毕之后,p指向4
  B p+=2,*++p 先计算p+=2,再计算++p 最后计算*p 表达式的值在最后一步确定 为4
  C p+=3,*p++ 先计算p+=3,再计算*p 最后计算++ 表达式的值在第二步确定为4,而后a[3]的值变为5
  D p+=2,++*p先计算p+=2,再计算*p 最后计算++ 表达式的值在最后一步确定,为4,而后a[2]的值变为4
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式