我写了这样一个程序:
int main(int argc, char *argv[])
{
void average(int *p,int n);
int a[3][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12}};
average(*a,12);
system("PAUSE");
return 0;
}
void average(int *p,int n)
{
float *pe,sum=0,aver;
pe=p+n-1;
for(;p<=pe;p++)
sum=sum+(*p);
aver=sum/n;
printf("%5.2f",aver);
}
输出正常,但是把第5行调用AVERAGE函数的实参改为(a,12)时,我发现输出居然是一样的!!
这是为什么?