C语言函数指针的使用举例
2016-01-19 14:40
323 查看
需求:
设计一个函数process,调用它的时候,每次实现不同的功能,分别求两个数的和,两个数的差,还有两个数较大值。
分析:
可以在process函数中,使用函数指针作为参数,传递不同函数的入口地址,得出不同的结果。
函数指针的定义为:int (*p)(int,int)
使用为:(*p)(a,b);
源码例子:
int add(int a,int b)
{
return a+b;
}
int sub(int a,int b)
{
return a-b;
}
int max(int a,int b)
{
return a>b?a:b ;
}
void process(int a,int b,int (*f)(int ,int ))
{
int result;
result = (*f)(a,b);
printf("%d\n",result);
}
int main()
{
int a,b;
int (*p)(int,int);
scanf("%d %d",&a,&b);
process(a,b,max);
process(a,b,add);
process(a,b,sub);
}
设计一个函数process,调用它的时候,每次实现不同的功能,分别求两个数的和,两个数的差,还有两个数较大值。
分析:
可以在process函数中,使用函数指针作为参数,传递不同函数的入口地址,得出不同的结果。
函数指针的定义为:int (*p)(int,int)
使用为:(*p)(a,b);
源码例子:
int add(int a,int b)
{
return a+b;
}
int sub(int a,int b)
{
return a-b;
}
int max(int a,int b)
{
return a>b?a:b ;
}
void process(int a,int b,int (*f)(int ,int ))
{
int result;
result = (*f)(a,b);
printf("%d\n",result);
}
int main()
{
int a,b;
int (*p)(int,int);
scanf("%d %d",&a,&b);
process(a,b,max);
process(a,b,add);
process(a,b,sub);
}
相关文章推荐
- CodeBlocks调试C&C++代码的方法
- Eclipse中 C/C++ 开发
- 堆排序使用的问题
- C++复数类的运算符重载
- C语言內嵌汇编
- C++头文件一览
- c++日期类的实现级运算符的重载
- 用纯C语言实现快速排序,分递归调用法和非递归调用法。
- 《C语言及程序设计初步》第37讲实践项目
- c++引用做函数返回值
- 设计模式C++实现:单例模式(Singleton)
- C语言MD5实现
- 关于C++多进程,多线程及内存分布的参考
- 【Accelerated C++】重点回顾(续)
- c++ 获取win10系统版本
- 经典的C++库
- 关于c语言中随机数生成连续播种的问题(初学者向)
- C++11标准库 - array
- c++ 设计模式1
- 【C语言天天练(十五)】字符串输入函数fgets、gets和scanf