c:指向函数的指针变量来求取最大最小值
2018-11-03 本文已影响24人
Tedisaname
问题描述:
以下使一个简单的例子,用来说明指向函数的指针变量。定义两个函数max和min,分别用来求最大值和最小值。在主函数中根据用户输入的数字是1或者是2,使指针变量指向max函数或者min函数。
codes:
#include <stdio.h>
int main()
{
int max(int,int);//求最大值函数声明
int min(int,int);//求最小值函数声明
int (*p)(int,int);//定义指向函数的指针变量
int a,b,c,n;
printf("please input two numbers:");//输入两个数
scanf("%d%d",&a,&b);
printf("please choose 1 or 2:");//输入1 or 2
scanf("%d",&n);
if(n == 1){ //如果输入1则使 p 指向max函数
p = max;
}
else if(n == 2){ //如果输入2,使p指向min函数
p = min;
}
c = (*p)(a,b);
printf("a = %d, b = %d\n",a,b);
if(n == 1){
printf("max = %d\n",c);
}
else{
printf("min = %d\n",c);
}
return 0;
}
int max(int x, int y) //求最大值函数
{
return x > y ? x : y;
}
int min(int x, int y) //求最小值函数
{
return x < y ? x : y;
}
You can leave me a message if you find out any mistake in my diary, I'll correct it, thanks.