#include void sum(int *a) {a[0]=a[1];} void main() {int aa[5]={1,2,3,4,5},i; for(i=2;i>=0;这个程序是怎么回事啊?接着上边的for(I=2;I>=0;i--)sum(&aa[i]);printf("%d\n",aa[0]);}

来源:学生作业帮助网 编辑:作业帮 时间:2024/05/10 18:48:16
#include void sum(int *a) {a[0]=a[1];} void main() {int aa[5]={1,2,3,4,5},i; for(i=2;i>=0;这个程序是怎么回事啊?接着上边的for(I=2;I>=0;i--)sum(&aa[i]);printf(

#include void sum(int *a) {a[0]=a[1];} void main() {int aa[5]={1,2,3,4,5},i; for(i=2;i>=0;这个程序是怎么回事啊?接着上边的for(I=2;I>=0;i--)sum(&aa[i]);printf("%d\n",aa[0]);}
#include void sum(int *a) {a[0]=a[1];} void main() {int aa[5]={1,2,3,4,5},i; for(i=2;i>=0;
这个程序是怎么回事啊?
接着上边的
for(I=2;I>=0;i--)
sum(&aa[i]);
printf("%d\n",aa[0]);
}

#include void sum(int *a) {a[0]=a[1];} void main() {int aa[5]={1,2,3,4,5},i; for(i=2;i>=0;这个程序是怎么回事啊?接着上边的for(I=2;I>=0;i--)sum(&aa[i]);printf("%d\n",aa[0]);}
第一次运行i=2,sum[&aa[2]]就把aa[2]当做首地址传给函数sum,然后sum函数中的a[0],a[1]分别代表了aa[2],aa[3],所以第一次完毕以后aa[2]=aa[3]=4;然而aa[0]并没有改变
然后第二次运行i=1;同样将4传给了aa[1]=4;
然后第三次i=0,将aa[0]赋值为4.所以结果应该是4