函数指针
函数指针是指向函数的指针变量,因而“函数指针”本身首先应是指针变量,只不过指针变量指向函数。这正如用指针变量可指向整型变量,字符型,数组一样,这里是指向函数,如前所述,c在编译时,每一个函数都有一个入口地址,该入口地址就是函数指针所指向的函数的入口地址,有了指向函数的指针变量后,可用该指针变量调用函数,就如同用指针变量可引用其他类型变量一样,在这些概念上一致的。函数指针有两个用途:调用函数和做函数的参数
当定义一个函数的时候,除了函数名之外的其他部分组合起来叫做函数指针的函数类型
int sum(int a, int b),在这个例子中因为函数名代表的是函数的入口地址,所以这个函数还可以写成
int (*p)(int a, int b)变形后的这条语句中新的函数类型变为int (*)(int a, int b)函数指针是p写在和‘*’一个括号中,并且在使用的时候这个括号是不可以省略的,这样就可以通过指针调用函数了,调用函数的形式例如:p(3, 5)再定义一个变量将返回值赋之就可以了
函数指针定义:指向函数类型的变量的指针,函数名和数组名一样都代表地址,所以给指针赋值的时候只写上函数的名字就可以了,函数指针的使用和一般的函数一样。
使用函数指针的好处:1.增加了函数的可扩展性,可以添加更多功能且很方便