【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, … )
【C学习笔记】函数指针的运用实例