
为什么这个答案是D,求解析,详细!
3个回答
展开全部
先看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})
第二次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})
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
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
第一层循环,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]
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
&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
&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
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询