int Max(int a,int b)
{
return a>b ? a : b;
}
{
return a>b ? a : b;
}
int Min(int a,int b)
{
return a
}
{
return a
}
int Avg(int a,int b)
{
return (a+b)/2;
}
{
return (a+b)/2;
}
以上三个函数的参数相同,返回值为int型,像这种相似的可以使用函数指针来进行设计
设计形式: int (*p)(int,int);//函数指针(指向函数的指针)
p = &Max;
p = &Min;
p = &Avg;
printf("%d\n",(*p)(20,10));
printf("%d\n",p(10,20));
设计形式: int (*p)(int,int);//函数指针(指向函数的指针)
p = &Max;
p = &Min;
p = &Avg;
printf("%d\n",(*p)(20,10));
printf("%d\n",p(10,20));
C 标准规定,函数名也表示函数的入口地址,所以也可以这样表示: p = Max;
int arr[10] = {0};
printf("%d,%d\n",arr,&arr);//值一样含义不同
printf("%d,%d\n",arr,&arr);//值一样含义不同
arr+1表示加一个格子,而&arr+1表示加整个数组的字节
如下程序所示:
#include
int Max(int a,int b)
{
return a>b ? a : b;
}
int Max(int a,int b)
{
return a>b ? a : b;
}
int Min(int a,int b)
{
return a
}
{
return a
}
int Avg(int a,int b)
{
return (a+b)/2;
}
{
return (a+b)/2;
}