龙盟编程博客 | 无障碍搜索 | 云盘搜索神器
快速搜索
主页 > 软件开发 > C/C++开发 >

学点 C 语言(38): 函数 - 函数指针(2)

时间:2009-12-22 15:42来源:未知 作者:admin 点击:
分享到:
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(voi

  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;

}

精彩图集

赞助商链接