2.
#include <stdio.h>
int f(int a[],int n)
{
if(n>1) return a[0]+f(&a[1],n-1);
else return a[0];
}
int main()
{
int aa[3]={1,2,3},s;
s=f(&aa[0],3);
printf("%d",s);
return 0;
}
2.
#include <stdio.h>
int f(int a[],int n)
{
if(n>1) return a[0]+f(&a[1],n-1);
else return a[0];
}
int main()
{
int aa[3]={1,2,3},s;
s=f(&aa[0],3);
printf("%d",s);
return 0;
}
int f(int a[],int n) 相当于int f(int *a,int n)
f(&aa[0],3); 则是f(aa,3);,传入整个数组
f(&a[1],n-1); 则是传入第二个元素开始的数组。
f是从数组后面往前累加,结果是数字元素之和。