变量指向函数。
把一个数组指向函数。
#include <stdio.h> int max(int a,int b); int min(int a,int b); int main(int argc, char *argv[]) { int a1=0; int b1=0; int(*p[1])(int,int); //定义一个指针类型的数组 注意与数组指针区别 反回类型是int p[0]=max; //先定义 否侧会出错 p[1]=min; //指向函数 printf("请输入a和b的值"); scanf("%d%d",&a1,&b1); printf("a=%d,b=%d\n",a1,b1); printf("a[%d]和b[%d]的值中大的是:%d\n",a1,b1,(*p[0])(a1,b1)); //此处调用函数max使用的是变量指向函数 printf("a[%d]和b[%d]的值中小的是:%d\n",a1,b1,(*p[1])(a1,b1)); printf("a=%d,b=%d\n",a1,b1); return 0; } int max(int a,int b){ int z; if(a>b)z=a; else z=b; return z; } int min(int a,int b){ int z; if(a<b)z=a; else z=b; return z; }
以前代码过通调式。
要点。指针数组与数组指针的区别。
指针数组申明:int *p[4] 申明一个数组是int的指针类型 每一个成员都是指针。
数组指针申明:int *(p[4]) 申请一个指针指向一个数组 只有一个指针指向数组的首地址。