求解求解,望高手指点!!!!!
#include<stdio.h>
void f1();
void f2();
void 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](flag-1);
printf("请输入一个1,2,或者3.输入0退出.\n");
scanf("%d",&flag);
}
else
{
printf("请输入一个合法的数(1-3),0退出。\n");
scanf("%d",&flag);
}
}
printf("程序退出:\n");
}
void f1()
{
printf("函数f1()被调用!\n");
}
void f2()
{
printf("函数f2()被调用!\n");
}
void f3()
{
printf("函数f3()被调用!\n");
}
上面程序中f[flag-1](flag-1);
怎么理解啊?
望高手指点