求两数的和,差,积(指针函数作为形参)
2015-08-13 17:46
155 查看
#include<stdio.h>
int f(int a,int b)
{
int c;
c=a+b;
return c;
}
int g(int a,int b)
{
int c;
c=a*b;
return c;
}
int h(int a,int b)
{
int c;
c=a-b;
return c;
}
int main()
{
int x,y,z,j,k;
scanf("%d%d",&x,&y);
int(*p1)(int a,int b);
int(*p2)(int a,int b);
int(*p3)(int a,int b);
p1=f;//指针函数p1指向函数f
p2=g;//指针函数p2指向函数g
p3=h;//指针函数p3指向函数h
z=p1(x,y);//相当于f在运算
j=p2(x,y);//同上
k=p3(x,y);
printf("和是:%d\n积是:%d\n差是:%d",z,j,k);
return 0;
}
当指针函数作为形参时,会发现只需定义一个指针变量即可
#include<stdio.h>
int f(int a,int b)
{
int c;
c=a+b;
return c;
}
int g(int a,int b)
{
int c;
c=a*b;
return c;
}
int h(int a,int b)
{
int c;
c=a-b;
return c;
}
void a(int x,int y,int (*fun)(int ,int ))//函数指针作为形参
{
int result;
result=(*fun)(x,y);//指针函数所指的函数f在此运算,fun就是一个作为形参的指针函数,作为形参,它是变量,它可以接受多个实参,做为指针,它可以去指向某个函数的地址
printf("%d\n",result);
}
int main()
{
int x,y;
scanf("%d%d",&x,&y);
printf("和=");
a(x,y,f);//函数名f作为实参,传递给指针函数fun,使fun指向函数f
printf("差=");
a(x,y,g);
printf("积=");
a(x,y,h);
return 0;
}
int f(int a,int b)
{
int c;
c=a+b;
return c;
}
int g(int a,int b)
{
int c;
c=a*b;
return c;
}
int h(int a,int b)
{
int c;
c=a-b;
return c;
}
int main()
{
int x,y,z,j,k;
scanf("%d%d",&x,&y);
int(*p1)(int a,int b);
int(*p2)(int a,int b);
int(*p3)(int a,int b);
p1=f;//指针函数p1指向函数f
p2=g;//指针函数p2指向函数g
p3=h;//指针函数p3指向函数h
z=p1(x,y);//相当于f在运算
j=p2(x,y);//同上
k=p3(x,y);
printf("和是:%d\n积是:%d\n差是:%d",z,j,k);
return 0;
}
当指针函数作为形参时,会发现只需定义一个指针变量即可
#include<stdio.h>
int f(int a,int b)
{
int c;
c=a+b;
return c;
}
int g(int a,int b)
{
int c;
c=a*b;
return c;
}
int h(int a,int b)
{
int c;
c=a-b;
return c;
}
void a(int x,int y,int (*fun)(int ,int ))//函数指针作为形参
{
int result;
result=(*fun)(x,y);//指针函数所指的函数f在此运算,fun就是一个作为形参的指针函数,作为形参,它是变量,它可以接受多个实参,做为指针,它可以去指向某个函数的地址
printf("%d\n",result);
}
int main()
{
int x,y;
scanf("%d%d",&x,&y);
printf("和=");
a(x,y,f);//函数名f作为实参,传递给指针函数fun,使fun指向函数f
printf("差=");
a(x,y,g);
printf("积=");
a(x,y,h);
return 0;
}
相关文章推荐
- iOS Xcode 解决每次版本更新后插件都不好用的问题
- 1.1、开启一个子线程,发送短信
- 斯坦福ML公开课笔记12——K-Means、混合高斯分布、EM算法
- memcpy和strcpy区别以及它们的效率分析
- Ray Wenderlich的swift教程04--布局,添加图片,音频
- JAVA base64
- 用java制作的简易倒计时器(主要可用于考试系统中考试剩余时间显示)
- tengine获取后端真实IP
- GO语言UDP小笔记
- 【c++】字符串中找出最长的连续数字字符串
- 开放CENTOS防火墙端口
- Uiautomator——实例分析——唯品会的优物
- poj 3750 小孩报数问题(线段树-单点更新)
- MyBatis-Generator在Eclipse上配置及使用
- mfc中隐藏菜单栏,工具栏,最大/小化按钮等
- SpringMVC在IE下出现无法启动应用程序的错误!
- iNOC产品部--完全数计算
- python下编译py成pyc和pyo
- 图文搭配诠释三种链表及其哨兵
- win7无法访问虚拟机中的hadoop2.x的web管理界面