程序代码:
#include "stdafx.h" #include<stdio.h> int main() { int fun(int, int, int(*p)(int,int)); int add(int,int); int sub(int,int); int mul(int,int); int a,b,n,p; printf("please input a and b:\n"); scanf("%d %d",&a,&b); printf("please choose 1,2 or 3:"); scanf("%d",&n); if(n==1) p=fun(a, b,add); else if(n==2) p=fun(a, b, sub); else if(n==3) p=fun(a, b, mul); return 0; } int add(int x,int y) { int z; z=x+y; printf("sum="); return (z); } int sub(int x,int y) { int z; z=x-y; printf("sub="); return (z); } int mul(int x,int y) { int z; z=x*y; return (z); } int fun(int x,int y,int(*p)(int,int)) { int result; result=(*p)(x,y); printf("%d\n",result); return result; }
使用函数指针的进阶用法,我相信这才是楼主的本意...
另外,劝楼主,如果你不是处于某种考虑,知识贴了部分代码上来导致我之前改程序发现很多低级变异错误的话
函数指针这种东西,对你而言太高深了
我总觉得授人以鱼不如授人以渔...
可是总有些SB叫嚣着:要么给代码给答案,要么滚蛋...
虽然我知道不要跟SB一般见识,但是我真的没修炼到宠辱不惊...