問題描述:
以下使一個簡單的例子,用來說明指向函數(shù)的指針變量。定義兩個函數(shù)max和min,分別用來求最大值和最小值。在主函數(shù)中根據(jù)用戶輸入的數(shù)字是1或者是2,使指針變量指向max函數(shù)或者min函數(shù)。
codes:
#include <stdio.h>
int main()
{
int max(int,int);//求最大值函數(shù)聲明
int min(int,int);//求最小值函數(shù)聲明
int (*p)(int,int);//定義指向函數(shù)的指針變量
int a,b,c,n;
printf("please input two numbers:");//輸入兩個數(shù)
scanf("%d%d",&a,&b);
printf("please choose 1 or 2:");//輸入1 or 2
scanf("%d",&n);
if(n == 1){ //如果輸入1則使 p 指向max函數(shù)
p = max;
}
else if(n == 2){ //如果輸入2,使p指向min函數(shù)
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) //求最大值函數(shù)
{
return x > y ? x : y;
}
int min(int x, int y) //求最小值函數(shù)
{
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.