对之前文章《【周报】230206-0212~C程序设计语言数组,指针与函数》的补充
https://blog.csdn.net/Seigyoravel/article/details/128978328
函数指针
即指向函数的指针。
下为指向整型函数的指针:
int funtion(int a,int b);
int(*p)(int,int)=&function;//取函数首地址
int(*p)(int,int)=funtion;//函数名赋值,因为函数名也是首地址
使用(*p)或者p打印都可以:
#include<stdio.h>
int add(int a,int b){
return a+b;
}
int main(){
int(*p)(int,int)=add;
printf("%d\n",p(3,3));
printf("%d\n",(*p)(3,3));
return 0;
}
函数指针数组
即元素为指向同一类型函数的指针的集合。
int funtion1(int a,int b);
int funtion2(int a,int b);
int funtion3(int a,int b);
int (*p[3])(int,int)={funtion1,funtion2,funtion3};
使用(*p[])或者p[]打印都可以:
#include<stdio.h>
int add(int a,int b){
return a+b;
}
int sub(int a,int b){
return a-b;
}
int main(){
int(*p[2])(int,int)={add,sub};
printf("%d\n",(*p[0])(3,3));
printf("%d\n",(*p[1])(3,3));
printf("%d\n",p[0](3,3));
printf("%d\n",p[1](3,3));
return 0;
}