求解求解,望高手指点!!!!!

cyuyanwanglhp 2012-05-13 06:48:25
#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);
怎么理解啊?
望高手指点
...全文
62 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
cyuyanwanglhp 2012-05-13
  • 打赏
  • 举报
回复
谢谢!!!
有点明白啦
JoeBlackzqq 2012-05-13
  • 打赏
  • 举报
回复
f是一个函数指针数组
f[0]:就是取函数指针数组中的第一个元素
f[0]():调用函数指针数组中的第一个元素指向的函数,只是参数列表为空而已。
regainworld 2012-05-13
  • 打赏
  • 举报
回复
编译能通过吗?

69,373

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧