第一次运行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
希望对你有帮助
希望对你能有所帮助。
int
a[10];
表明a是个数组,a是数组名,数组名在c中就解释为一个地址常量,代表数组的首地址。
int
*p
;
表明p是个指针变量
p=a;
这时的p中存储的是数组a的首地址,此时,我们就可以把p当作a一样对待了,因此,可以用p[3]表示a[3],
为什么?呵呵,c就是这样规定的。
不知道lz怎么就把p[3]看成一个指针了?再好好看看书。