学点 C 语言(38): 函数 - 函数指针(2)
2. 函数指针数组:
#include
int add(int x, int y) {return(x + y);}
int sub(int x, int y) {return(x - y);}
int mul(int x, int y) {return(x * y);}
int div(int x, int y) {return(x / y);}
int main(void)
{
int (*pf[4])(int, int) = {add, sub, mul, div};
printf("%dn", pf[0](9, 3)); /* 12 */
printf("%dn", pf[1](9, 3)); /* 6 */
printf("%dn", pf[2](9, 3)); /* 27 */
printf("%dn", pf[3](9, 3)); /* 3 */
getchar();
return 0;
}
3. 用函数指针做参数:
#include
int add(int x, int y) {return(x + y);}
int sub(int x, int y) {return(x - y);}
int mul(int x, int y) {return(x * y);}
int div(int x, int y) {return(x / y);}
int math(int(*pfun)(int, int), int x, int y) {
return pfun(x, y);
}
int main(void)
{
printf("%dn", math(add, 9, 3)); /* 12 */
printf("%dn", math(sub, 9, 3)); /* 6 */
printf("%dn", math(mul, 9, 3)); /* 27 */
printf("%dn", math(div, 9, 3)); /* 3 */
getchar();
return 0;
}