【C学习笔记】函数指针的运用实例
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h>
#define PI 3.14159265
float Diameter(float radius) //求直径
{
return 2 * radius;
}
float Area(float radius) //求面积
{
return PI * radius * radius;
}
float Circle(float radius) //求周长
{
return 2 * PI * radius;
}
int main()
{
//定义一个函数指针pf,稍后分别指向上面三个函数
float(*pf)(float);
//pf 是一个函数指针,指向一个 含有一个float类型参数,返回值是float类型的函数
while (1)
{
float r;
printf("请输入圆的半径(输入100退出):");
scanf("%f", &r);
if (r == 100.0)
{
printf("程序即将退出!\n");
system("pause");
return 0;
}
pf = Diameter; //指针函数赋值,指向Diameter函数入口;
printf("圆的直径是:%f\n", pf(r));
pf = Circle;
printf("圆的周长是:%f\n", pf(r));
pf = Area;
printf("圆的面积是:%f\n", pf(r));
printf("\n");
}
return 0;
}
小结:函数指针原型: 函数返回类型 (*指针名) (参数类型1,参数类型2, … )