您的位置:首页 > 其它

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

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;

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: