首页 > 其他 > 详细

指针知识(八):函数指针

时间:2014-03-14 18:08:25      阅读:362      评论:0      收藏:0      [点我收藏+]

 

c++允许对指向函数的指针进行操作。它的一个重要使用是把一个函数作为参数传给另一个函数。

声明一个函数指针像声明一个函数原型一样,不过函数名前面插个符号 * ,然后用()扩起来。

 

#include <iostream>

#include <string>

using namespace std

int addition (int a, int b)

{return (a + b) ;} 

int subtraction (int a, int b)

{return (a - b) ;}

int operation(int x, int y, int (*func)(int ,int))

{

  int g;

  g = (*func)(x, y);

  return g;

}

int main()

{

  int m, n;

  int (*mins)(int, int) = subtraction;

  m = operation(7, 5, addition);

  n = operation(20, m, mins);

  cout<<n<<‘\n‘;

 

  return 0;

}

输出:8

 

上面的例子中,mins是指向函数的指针,有两个 int 类型的参数,它被直接初始化指向 subtraction :

int (*mins)(int, int) = subtraction;

这里实际是在定义一个指针变量,这个指针的名字叫做mins,这个指针的类型是指向一个函数,函数的类型是有两个整型参数并返回一个整型值。

整句话 “int (*mins)(int, int) = subtraction;” 是定义了这样一个指针并把函数subtraction的值赋给它,也就是说有了这个定义后mins就代表了函

数subtraction。因此括号中的两个int int实际只是一种变量类型的声明,也就是说是一种形式参数而不是实际参数。

指针知识(八):函数指针,布布扣,bubuko.com

指针知识(八):函数指针

原文:http://www.cnblogs.com/guozqzzu/p/3599462.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!