**********************以下问题均在C语言当中讨论************************************
【问题1】指针数组可以存放函数的地址吗?
【问题2】如果可以,数组指针类型是啥?是int *num[ ]还是chan *num[ ]还是其他类型?
【问题3】如果可以,有木有简单方法解决下面问题
有100个函数,HS1(),HS2(),HS3(),……,HS98(),HS99(),HS100()。
还有1个指针数组num[100]来存放这100个函数的地址,
要求将 HS1()的地址放到num(1)中, HS2()地址放到num(2)中, HS3()的地址放到num(3)中, 以此类推 直到 HS100()的地址放到num(100)
当然一个挨着一个的地址赋值是可以的,但那样要100次才行,能不能利用for,while,if等语句甚至构造其他函数等方法 进行地址赋值?
1.函数指针的数组定义方法:返回值类型( * 指针变量名[Number]) (形参列表)。
例如:
double add(double a,double b){};
double sub(double a,double b){};
double mul(double a,double b){};
double div1(double a,double b){};
double (*oper_func[])(double, double) = {add,sub,mul,div1};//函数指针的数组定义
2.函数指针是指向函数的指针变量。函数指针有两个用途:调用函数和做函数的参数。
函数指针的声明方法为:
返回值类型( * 指针变量名) (形参列表);
“返回值类型”说明函数的返回类型,“( * 指针变量名)”中的括号不能省,括号改变了运算符的优先级。若省略整体则成为一个函数说明,说明了一个返回的数据类型是指针的函数,后面的“形参列表”表示指针变量指向的函数所带的参数列表。
例子: