湖北法院庭审公开网:解释一下这个程序(c语言)

来源:百度文库 编辑:高考问答 时间:2024/04/29 13:32:02
void sum(int *a )
{a[0]=a[1];}
main()
{int aa[10]={1,2,3,4,5,6,7,8,9,10},i;
for (i=1,i>=0,i--)sum (&a[i]);
printf("%d\n",aa[0]);
} 程序输出结果是1 ,怎么来的?

sum(aa[i])
如果是这样:

for进行了2次循环,
第一次i=1,sum(&aa[1])将aa[2]的值给了aa[1],aa[1]=3
第二次i=0, sum(&aa[0])将aa[1]的值给了aa[0],aa[0]=3

所以aa[0]应该是3

这个程序虽然没错,但sum并没有实现求和的内容。只是将一个数组的第二个数的值赋给了第一个数。

sum(aa[i])?笔误?
如果笔误,那么sum函数将数组a的第2个值付给第一个元素,当输入a[i],i=1时,sum的作用是使得a[1]=3,在循环中,没有对a[0]进行操作,所以a[0]=1

hehe,在下看不懂,郁闷!~~!!!~~