- 定义指向函数的指针变量,形式上用(*p)取代max,int(*p)(int,int)
- 使p指向max函数,p=max
- 通过指针变量调用max函数,形式上用(*p)取代max,c=(*p)(a,b)
1. 通过指针变量访问它所指向的函数实现求出两个整数中的大者:
#include <stdio.h> int main() { int max(int x,int y); int (*p)(int x,int y);//声明指向指针的函数 p=max;//指向max函数 int a,b,outcome; scanf("%d%d",&a,&b); outcome=(*p)(a,b);//调用指向指针的函数 printf("%d",outcome); return 0; } int max(int x,int y) { int max; if(x>y) { max=x; } else { max=y; } return max; }
2. 有两个整数a和b,由用户输入1,2,3。
如输入1,程序就给出a和b中的大者;输入2,就给出a和b中的小者;输入3,则求a和b之和(a=34,b=-21)。
#include <stdio.h> int main() { int max(int x,int y); int min(int x,int y); int sum(int x,int y); int (*p)(int x,int y);//指向函数的指针 int n,a=34,b=-21,outcome; scanf("%d",&n); if(n==1) { p=max; outcome=(*p)(a,b); printf("%d",outcome); } else if(n==2) { p=min; outcome=(*p)(a,b); printf("%d",outcome); } else if(n==3) { p=sum; outcome=(*p)(a,b); printf("%d",outcome); } return 0; } int max(int x,int y) { int max; if(x>y) { max=x; } else { max=y; } return max; } int min(int x,int y) { int min; if(x<y) { min=x; } else { min=y; } return min; } int sum(int x,int y) { int sum; sum=x+y; return sum; }
-END
标签:函数,指向,int,max,outcome,指针 From: https://www.cnblogs.com/peitongshi/p/16775027.html