1.用来访问函数
2.是可以具有封装特性,如结构体中可以包含函数指针,不同的结构体可以包含有相同名字的函数指针,这样不会导致冲突。(避免重复定义,也其实就是访问函数)
写法 返回值 +指针 +函数变量类型=函数名
int(*p)(int,int)=add
当然也有函数指针数组
int(*p[4])(int a,int b)={add,mul,jan,an};//*号的结合性小于括号的
完整演示
#includeint add(int a,int b) { return a+b; } int mul(int a,int b) { return a*b; } int jan(int a,int b) { return a/b; } int an(int a,int b) { return a-b; } int main() { int(*p[4])(int a,int b)={add,mul,jan,an};//*号的结合性小于括号的 for ( int i = 0; i < 4; i++) { printf("%dn",p[i](3,4)); } return 0; }
注意:在对结合性不了解时根据意思写每一段放一个括号,写了不会错,相反不写有很大可能会出错



