用函数指针调用函数
2015-10-29 00:00
323 查看
#include <stdio.h> int main(void){ int n = 6; int square(int num); int (*fptr)(int); //声明函数指针 fptr = square; //初始化函数指针 printf("%d square is %d.\n", n, fptr(n)); return (0); } int square(int num){ return (num * num); }
#include <stdio.h> double square(double x); // 函数原型 double (*ptr)(double x); // 声明函数指针 int main(void){ ptr = square; // 让指针指向square() //用两种方式调用square() printf("%f %f\n", square(6.6), ptr(6.6)); return 0; } double square(double x){ return x * x; }
用函数指针根据不同使用情况调用不同函数:
#include <stdio.h> #include <stdlib.h> void func1(int x); void one(void); void two(void); void other(void); int main(void){ int nbr; for(;;){ puts("\nEnter an integer between 1 and 10, 0 to exit: "); scanf("%d", &nbr); if(nbr == 0){ exit(0); } func1(nbr); } return 0; } void func1(int val){ void (*ptr)(void); if (val == 1) ptr = one; else if(val == 2) ptr = two; else ptr = other; ptr(); } void one(void){ puts("You entered 1."); } void two(void){ puts("You entered 2."); } void other(void){ puts("You entered something other than 1 or 2."); }
#include <stdio.h> //函数func1()接受一个函数指针参数,该指针指向的函数不接受任何参数,也没有返回值 void func1(void (*p)(void)); void one(void); void two(void); void other(void); int main(void){ void (*ptr)(void); // 函数指针 int nbr; for(;;){ puts("\nEnter an integer between 1 and 10, 0 to exit: "); scanf("%d", &nbr); if(nbr == 0){ break; } else if(nbr == 1){ ptr = one; } else if(nbr == 2){ ptr = two; } else { ptr = other; } func1(ptr); } return 0; } void func1(void (*p)(void)){ p(); } void one(void){ puts("You enter 1."); } void two(void){ puts("You enter 2."); } void other(void){ puts("You enter something other than 1 or 2."); }
相关文章推荐
- Webservice理解和使用小记
- TextView滚动问题
- 几种简单的js语句(延时函数,回车事件)
- SDWebImage获取网络图片大小
- JQuery实现幻灯片的切换
- 预订景点门票api演示
- maven添加 xfire-all-1.2.6.jar 导致的spring配置文件异常
- Linux 端口号划分
- 基于EasyUI的Web开发框架
- Oracle序列使用
- Linux 配置jdk和tomcat
- nutch2.3+hbase配置
- nutch2.3爬虫抓取电影网站
- 網上adidas originals品牌的
- 標有喬丹鞋黑色的耐克
- puma官網 鞋類將是最
- rsa 秘钥认证
- Servlet对“空”值参数的处理
- Java中String类型的参数传递问题的解析
- 润达软件:全球十大最赚钱公司新鲜出炉