/*一个数组,若元素均为指针类型数据,称为指针数组,
指针数组中的每一个元素都存放一个地址,每一个元素都相当于一个指针变量
定义一个指针数组int p[4]
由于[]比优先级高,因此p先与[4]结合,形成一个数组,p数组有4个元素
然后再与前边*结合,*表示此数组是指针类型的,
每个元素都是一个指针变量,都可以指向一个整形变量
*/
#include <stdio.h>
int main()
{
int a = 10;
int b = 20;
int c = 30;
int d = 40;
int i;
int* p[4] = {&a,&b,&c,&d};
for(i = 0;i < 4;i++){
printf("%d ",*(p[i]));
}
return 0;
}
/*有两个整数a和b,
用函数指针数组,给出最大数最小数及和
*/
#include <stdio.h>
int max(int data1,int data2)
{
return data1>data2 ? data1:data2;
}
int min(int data1,int data2)
{
return data1>data2 ? data2:data1;
}
int sum(int data1,int data2)
{
return data1+data2;
}
int dataHandler(int data1, int data2, int (*pf)(int,int))
{
int ret;
ret = (*pf)(data1,data2);
return ret;
}
int main()
{
int a = 10;
int b = 20;
int ret;
//int (*pf)(int,int);//函数指针
int (*pf[3])(int,int) = {max,min,sum};//函数指针数组
for(int i = 0;i < 3;i++){
ret = (*pf[i])(a,b);
printf("ret = %d\n",ret);
}
return 0;
}