C经典 函数指针的三种使用方式
2016-05-06 20:18
543 查看
定义方式:int (*p)(int x, int y);
#include <stdio.h> int sum(int x, int y){ return x + y; } int reduce(int x, int y){ return x - y; } int multiply(int x, int y){ return x * y; } float divide(int x, int y){ if(y ==0) return 0; else return x *1.0f/ y; } struct Student{ int age; float weight; char *name; void(*studentP()); } int main(int argc, const char * argv[]) { // 1.定义函数指针 int (*p)(int x, int y); // 2.初始化 p = sum; // 3.赋值 int s = p(3,2); // 4.打印 printf("%d\n",s);//=5; //-------------- printf("请输入数字1,2,3,4\n"); int num; scanf("%d",&num); switch (num) { case 1: p = sum; break; case 2: p = reduce; break; case 3: p = multiply; break; case 4: p = divide; break; } int result = p(22,2); printf("%d\n",result); //结构体: struct Student stu = (22,88,"tom",studp); printf("结构体长度=%d",sizeof(stu)); //1. stu.studp; //2. struct stu* stp = &stu; (*stp).studp; //3. stp -> studp; return 0; }
相关文章推荐
- Android studio和eclipse获取当前版本号
- 外部函数(计算圆面积)
- (学习进度表)【第九周】
- 简要描述一下Hadoop, Spark, MPI三种计算框架的特点以及分别适用于什么样的场景
- 数据库(SQLite)
- CentOS6.5服务器端口捆绑
- Hadoop之多行读取数据
- LeetCode-91.Decode Ways
- Java之------JUnit(二)
- POJ 2250 & UVA 531 Compromise(字符串、 最长公共子序列)
- 8、关于Jquery的Ajax的项目代码
- 「UI 测试自动化selenium」汇总
- 包,帧与报文的区别;通知窗口/拥塞窗口
- Scrum 项目1.0
- 最大公约数1
- java 坑收集
- dos命令下运行java程序(链接mysql为例子)
- SQL之创建新的数据库
- 星际之门(一)
- 正则表达式