关于指针调用函数的问题,不知道哪里错了
p = max;大概是这一行错误,但是我看书上好像是可以这样赋值的啊,不是说函数名代表了函数的入口地址吗?具体是哪里错了,怎么修改呢,谢谢了
//指针调用函数
# include <stdio.h>
# define M 8
float max(float a[], int n);
int main (void)
{
float sumf, sump;
float a[M] = {11, 2, -3, 4.5, 5, 69, 7, 80};
float (* p)();
p = max;
sump = (*p)(a, M); //指针间接调用函数
sumf = max(a, M); //直接调用
printf("sump = %.2f\n", sump);
printf("sump = %.2f\n", sumf);
return 0;
}
float max(float a[], int n) //求出数组元素中最大值
{
int k;
float s;
s = a[0];
for(k=0; k<n; k++)
{
if(s<a[k])
s = a[k];
}
return s;
}