函数指针
每个函数都是有地址的,调用函数实际上就是找到该函数的地址。
使用函数指针可以传递函数。
定义:
定义函数指针有多种方法如:
使用auto需要注意,在定义时必须要初始化,但可以是任意函数类型。
还可以使用typedef定义,但注意,typedef定义的是一个类型,真正定义需要:
函数指针的用法:
定义一个ptrCalc函数指针,指向att()函数,在实行print_result()函数,把ptrCalc,num1,num2传入。
其中ptrCalc实际上就是att()函数。
print_result()函数的运行过程,由于传入的函数指针名为ptr,调用ptr实际上就是调用函数att()。
函数指针数组
更为明确的说法是构成指向函数的指针数组。需要用到typedef来创建。
定义如下:
ptr意思是创建了一个函数指针数组类型,fb则为函数指针数组,将函数test1,test2,test3传给fb。
则fb已经是一个函数指针数组,并且数组中有3个函数。
在调用时只需要调用数组中第几个函数即可,注意数组的下标从0开始。
表示调用函数指针数组中第二个函数也就是test2。
运行结果: