#include<stdio.h>
void function1(int);
void function2(int);
void function3(int);int main(){void (*f[3])(int) = {function1, function2, function3};//f是一个数组,该数组的成员都是指针变量,// 这三个指针变量都分别指向需要int参数的三个函数int choice;printf("请输入一个数,范围[0-2]:");scanf("%d",&choice);while(choice >= 0 && choice < 3){(*f[choice])(choice); //调用相应的函数//(f[choice])(choice)这种也支持printf("请输入一个数,范围[0-2]:");scanf("%d",&choice);}printf("程序运行结束");return 0;
}void function1(int choice){printf("输入了%d,运行了function1函数\n",choice);
}
void function2(int choice){printf("输入了%d,运行了function2函数\n",choice);
}
void function3(int choice){printf("输入了%d,运行了function3函数\n",choice);
}


运行结果:

D:\Clion\homework\cmake-build-debug\homework.exe
请输入一个数,范围[0-2]:0
输入了0,运行了function1函数
请输入一个数,范围[0-2]:1
输入了1,运行了function2函数
请输入一个数,范围[0-2]:2
输入了2,运行了function3函数
请输入一个数,范围[0-2]:3Process finished with exit code -1073741819 (0xC0000005)

好奇怪,并没有出现“程序运行结束”。

好吧,我知道哪里出错了。。
这是原来的,while(choice >= 0 && choice <= 3)
正确的应为,while(choice >= 0 && choice < 3)
已在源代码中改过来。
不过我刚请教了懒猫老师啊啊啊啊啊浪费了请教老师的机会!!!

【C】函数指针——定义一个函数指针数组相关推荐

  1. 20 Python函数、定义一个函数、参数传递、匿名函数、return语句、变量作用域、

    20Python函数 函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段. 函数能提高应用的模块性,和代码的重复利用率.你已经知道Python提供了许多内建函数,比如print().但你 ...

  2. python怎么定义一个函数_Python定义一个函数的方法

    Python函数的定义 定义函数,也就是创建一个函数,可以理解为创建一个具有某些用途的工具.定义函数需要用 def 关键字实现,具体的语法格式如下: def 函数名(形参列表): //由零条到多条可执 ...

  3. 第三章 函数——自己定义一个函数

    目录 def语句和参数 返回值和return语句 None值 关键字参数和print() print(,end='') print(,sep='') 局部和全局作用域 global语句 异常处理 第一 ...

  4. 定义一个二维数组,写函数来实现对该二维数组求最大值。(要求,用行指针为函数形参)

    // 121219 上机任务3.cpp : 定义控制台应用程序的入口点. // /* * Copyright (c) 2012, 烟台大学计算机学院 * All rights reserved. * ...

  5. C语言:定义一个函数max_min,求一组数据的最大值和最小值. 在主函数中输入n和n个数据,调用max_min函数求出最大最小值,然后在主函数中输出这n个数的最大值和最小值。(要求使用指针做)

    [问题描述]定义一个函数max_min,求一组数据的最大值和最小值. 在主函数中输入n和n个数据,调用max_min函数求出最大最小值,然后在主函数中输出这n个数的最大值和最小值.(要求使用指针做) ...

  6. C++如何定义一个函数指针

    首先给出一个函数 int function(int a) {return a; } 一.定义一个函数指针 int (*fun)(int a); // 赋值 fun = function; // 使用 ...

  7. c语言 返回函数是结构体指针变量,一个函数返回值为指向结构体的指针的问题...

    一个函数返回值为指向结构体的指针的问题 #include #include struct student { int num; char name[10]; struct student *next; ...

  8. C语言:使用指针,封装一个函数, // 使输入的奇数从小到大排列,奇数排列完毕之后,再把偶数从大到小进行排列, // 最终输出整个

    // 使用指针,封装一个函数, // 使输入的奇数从小到大排列,奇数排列完毕之后,再把偶数从大到小进行排列, // 最终输出整个 #include <stdio.h> void Jopai ...

  9. 算法训练 - P1101 ——有一份提货单,其数据项目有:商品名(MC)、单价(DJ)、数量(SL)。定义一个结构体prut,其成员是上面的三项数据。在主函数中定义一个prut类型的结构体数组,输入每

    问题描述 有一份提货单,其数据项目有:商品名(MC).单价(DJ).数量(SL).定义一个结构体prut,其成员是上面的三项数据.在主函数中定义一个prut类型的结构体数组,输入每个元素的值,计算并输 ...

最新文章

  1. 需要反射时使用dynamic
  2. Oracle的基本操作(一:子查询与常用函数)
  3. 零基础入门学习Python(18)-全局变量与局部变量
  4. WEBAPI 帖子收藏
  5. python中的__new__与__init__,新式类和经典类(2.x)
  6. 51nod 1021 石子归并 (动态规划 简单代码)
  7. 小姐姐为你解析马爸爸是怎么用大数据“宰你”的
  8. python3线程gil_python3爬虫GIL修改多线程实例讲解
  9. redis实践的一点思路,关于支付回调
  10. JS中自动执行函数小结
  11. 构建ASP.NET MVC5+EF6+EasyUI 1.4.3+Unity4.x注入的后台管理系统(52)-美化EasyUI皮肤和图标
  12. 微信找不到nfc功能_手机的NFC如何使用?3分钟教会你!
  13. SPQuery如何消除重复记录(实现联动性)
  14. 如何更新一台计算机的驱动程序,怎样更新电脑最新驱动程序? -电脑资料
  15. ad15的stc元件库_STC8系列 STC15系列STCMCU Protel_Altium原理图PCB器件封装库文件
  16. 数据库-SQL语句创建与修改
  17. 红米note2卡在android,红米note2怎么插卡?红米note2插卡流程详解
  18. 索引的底层实现原理是什么?
  19. 软件开发流程与项目管理
  20. 捞王二闯IPO,谁是“火锅第三股“?||Review

热门文章

  1. 帮我列举下医疗器械行业的公司,要最厉害的。
  2. 苹果cms开启vip会员收费权限教程
  3. caffe 处理数据集相关代码
  4. v70.05 鸿蒙内核源码分析(管道文件) | 如何降低数据流动成本 | 百篇博客分析OpenHarmony源码
  5. Docker: 小白之路一(Ubuntu16.04安装篇)
  6. 《第一堂棒球课》:王牌游击手·棒球6号位
  7. 【MongoDB】索引之复合索引
  8. Illustrator教你如果画人物插画
  9. React Native跨平台开发学习笔记
  10. airbnb数据_Airbnb的数据驱动故事