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