博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
指针知识(八):函数指针
阅读量:6772 次
发布时间:2019-06-26

本文共 872 字,大约阅读时间需要 2 分钟。

 

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 实际只是一种变量类型的声明,也就是说是一种形式参数而不是实际参数。

转载于:https://www.cnblogs.com/guozqzzu/p/3599462.html

你可能感兴趣的文章
针对项目中用到可播放rtmp格式的jwplayer视频播放器
查看>>
使用libx264将I420编码为H.264
查看>>
java-对象的理解-对象在内存的存储
查看>>
为什么我们的web前端变的越来越复杂
查看>>
如何设置有利于网站优化的uRL结构?
查看>>
SaaS、云计算、软件:危险的“三角恋”
查看>>
创新Or模仿?浅谈“山寨”圈里的云计算
查看>>
《Linux From Scratch》第四部分:附录- 索引
查看>>
在 Swift Playgrounds 中使用 Core Data 模型
查看>>
ASP.NET MVC的客户端验证:jQuery验证在Model验证中的实现
查看>>
AlwaysON同步性能监控的三板斧
查看>>
环球天下刘学辉:教育业的IT选型心经
查看>>
使用.net编写的 短连接(短网址)服务
查看>>
加速物联网业务发展 英特尔有意收购Altera
查看>>
“预知能力的超人” 细数威胁情报那些事儿
查看>>
物联网推动CRM创造新型服务
查看>>
你信隔空取物吗?你以为不插网线就安全吗?DiskFiltration可以突破物理隔绝窃取数据...
查看>>
单盘随机读IOPS超百万、容量11TB SSD诞生---PBlaze5 PCIe NVMe SSD
查看>>
中国工程院院士高文:智慧城市的管控思路
查看>>
鑫泰水处理用条码构建企业物联网的全连接
查看>>