求两数的和,差,积(指针函数作为形参)

来源:互联网 发布:手机淘宝店铺名怎么改 编辑:程序博客网 时间:2024/06/05 09:32

#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;
}

0 0
原创粉丝点击