声明一个指向函数的指针数组。并通过指针调用函数。
#include<stdio.h> void f1();//函数f1的声明 void f2();//函数f2的声明 void f3();//函数f3的声明 void main() { void (*f[3])()={f1,f2,f3};//指向函数的指针数组的声明 int flag; printf("请输入一个1,2或者3.输入0退出. "); scanf("%d",&flag); while(flag) { if(flag==1||flag==2||flag==3) { f[flag-1]();//通过函数指针调用数组中的函数 printf("请输入一个1,2或者3.输入0退出. "); scanf("%d",&flag); } else { printf("请输入一个合法的数(1-3)。0退出。 "); scanf("%d",&flag); } } printf("程序退出。 "); } void f1()//函数f1的定义 { printf("函数f1被调用! "); } void f2()//函数f2的定义 { printf("函数f2被调用!"); } void f3()//函数f3的定义 { printf("函数f3被调用! "); }
程序执行结果:
注意:函数指针不能运行像fun+1、fun++、fun--等运算。