变量指向函数。
把一个数组指向函数。
#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]) 申请一个指针指向一个数组 只有一个指针指向数组的首地址。


支付宝打赏
微信打赏 