为什么这个答案是D,求解析,详细!

 我来答
百度网友f00508e23
2017-03-18 · 超过45用户采纳过TA的回答
知道小有建树答主
回答量:92
采纳率:100%
帮助的人:65.2万
展开全部
先看for循环里:第一次i=2:进入sum函数,sum是将第二项赋值给第一项,传入的是a={3,4,5,6,7,8,9,10}(sum的形参*a指向&aa[2],所以对于a而言,是从3开始)变成了a={4,4,5,6,7,8,9,10}(此时aa完整的内容是{1,2,4,4,5,6,7,8,9,10});
第二次i=1,传入a={2,4,4,5,6,7,8,9,10}变成了a={4,4,4,5,6,7,8,9,10}(此时aa完整的内容是{1,4,4,4,5,6,7,8,9,10})
第三次i=0,传入a=(1,4,4,4,5,6,7,8,9,10)变成了a={4,4,4,4,5,6,7,8,9,10}(此时aa完整的内容是{4,4,4,4,5,6,7,8,9,10})
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
xgh024028
2017-03-18 · TA获得超过828个赞
知道小有建树答主
回答量:283
采纳率:71%
帮助的人:235万
展开全部
sum(&aa[i])这句具有迷惑性,可以简化。定义指针int *p=&aa[i]。
第一层循环,i=2,p指向aa[2],p[0]=aa[2],p[1]=aa[3],第一层执行完后,aa[2]与aa[3]值互换,aa[2]等于4。
第二层循环,i=1,重复上面步骤,aa[1]变为4。
第三层,i=0,aa[0]变为4
追答
不是互换,是aa[3]赋给aa[2]
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
金色潜鸟
2017-03-18 · TA获得超过3.2万个赞
知道大有可为答主
回答量:1.3万
采纳率:89%
帮助的人:6034万
展开全部
&aa[2] 进入时, a[0] 是 aa[2],a[1] 是 aa[3], 于是 数组变:1,2,4,4,5。。。
&aa[1] 进入时, a[0] 是 aa[1],a[1] 是 aa[2], 于是 数组变:1,4,4,4,5。。。
&aa[0] 进入时, a[0] 是 aa[0],a[1] 是 aa[1], 于是 数组变:4,4,4,4,5。。。
输出 aa[0], 就输出它的新值 4, 选D
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式