函数指针,顾名思义,用来指向函数的指针变量。
语法:
#include <stdio.h>
int add(int x , int y){
return x + y;
}
void cacul(int x,int y){
int caculResult = x - y;
printf("caculResult=%d\n",caculResult);
return ;
}
void main(){
//定义一个函数指针
int (*addPoint)(int x , int y);
void (*caculPoint)(int x , int y);
//给函数指针赋值
addPoint = add;
caculPoint = cacul;
//使用函数指针
int result = addPoint(5,6);
caculPoint(5,6);
printf("result=%d",result);
}
定义函数指针的语法如上所示 (* 函数指针名称) ,括号前方是函数的返回值,括号后方是函数的参数列表。
接着把函数地址赋值给函数指针,和普通的把变量赋值给指针一样。
这里大家可能遗憾 addPoint = add; 为什么不是addPoint = &add?
其实大家打印一下就发现,这直接打印数组名字一样,add函数名就是这个函数的内存首地址。
printf("add address%#x",add);
结果:
add address0x401530