今天发现了一种写法,顺便记录一下。废话不多说,先看代码:

#include <iostream>using namespace std;int addition(int x, int y){return x + y;
}int subtraction(int x, int y){return x - y;
}int operation(int x, int y, int (*function)(int, int)){return (*function)(x, y);
}int main(){int answer = operation(1, 2, addition);cout << answer;}

在这里我们可以将(*function)视为函数的指针,直接将函数名称传进去,但是内部获取的是指针,而不是函数本身,所以不用担心这么做是把函数拷贝一份浪费了内存的空间。

网上有一些用typedof方法的实现,其实也可以,但是这种方法相对更加简洁一些。

对了,我上次发的那个在线编译器只支持c++98,如果想要在线测试比较新的c++功能,比如c++11或者c++14,那么可以访问http://cpp.sh/ (国内打开会慢一些)

c++ 用指针将函数作为参数传参相关推荐

  1. python笔记之强制函数以关键字参数传参

    最近学习python,学到了函数传参,看到了以下这个特殊情况,特此来做个笔记 def add(*, x, y): print(x, y) 以上函数定义后,该怎么传参?前面的那个*号是做什么用的? 我们 ...

  2. C++结构体作为函数参数传参

    #include<iostream> using namespace std;#include<string>//结构体 struct Student {string name ...

  3. 【小白学习C++ 教程】六、C++内置函数和函数传参

    @Author:Runsen 文章目录 内置函数 函数 传递参数 形式参数(指针传递) 函数是一组一起执行一个任务的语句.每个 C++ 程序都至少有一个函数,即主函数 main() ,所有简单的程序都 ...

  4. c++ 函数当参数传参,类函数当参数传参,匿名函数当参数传参,function<void()>

    函数传参 一.在URDriver类中调用其它类中的匿名函数 使用function<void()>接收(通过传函数的方式) 1.1 定义一个类URDriver,类中定义一个接收函数的成员 f ...

  5. c语言中数组作为参数传参

    一维数组作为函数参数; # include <stdio.h>arr1(int arr[])//第一种方法,直接是数组类型,方括中可以不写个数,因为没有意义;(int *p)// 第二种方 ...

  6. python **运算符及多参数传参

    在 Python 中,* 和 ** 具有语法多义性,具体来说是有四类用法. 1.算数运算 * 代表乘法 **代表乘方 >>> 2 * 5 10 >>> 2 ** 5 ...

  7. 数组作为函数的参数传参时,数组名会退化为指针

    1.数组作为函数的参数传参时,数组名会退化为指针 数组作为函数的参数传参时,数组名会退化为指针,数值传参时,需要把数值的长度一起传过去,另外,sizeof()运算符包含字符串的哨兵'/0',而strl ...

  8. C语言指针与函数传参

    指针与函数传参 普通变量与函数形参 数组作为函数形参 结构体变量作为函数形参 传值调用和传址调用 输入型参数和输出型参数 函数的形参和返回值 函数传参中使用const指针 函数如何向外部返回多个值 总 ...

  9. 【C语言】指针进阶 - 指针数组 数组指针 数组指针传参 函数指针 指向函数指针数组的指针

    目录 一.字符指针 一道题 二. 指针数组 解引用打印数组元素 &数组名 数组名 字符指针初始化 三.数组指针 取数组地址-放在数组指针里 类型 数组指针的使用 二维数组传参 判断 四.数组参 ...

最新文章

  1. oracle创建DBLink连接
  2. 第三次学JAVA再学不好就吃翔(part70)--BigInteger类
  3. mat opencv 修改roi_设置图片ROI(OpenCV学习笔记之二)
  4. 最优化理论与算法笔记
  5. java canvas画圆圈_java – 在视图上绘制一个圆圈(android)
  6. php-curl-class,一个简单PHP CURL类
  7. html5 css3考试f卷,HTML5 CSS3 JavaScriptWeb前端开发自测试卷3.docx
  8. 【题解】洛谷P1283 平板涂色(搜索+暴力)
  9. 跟着开源项目学因果推断——causalnex(十三)
  10. 2018-12-13丛晓强作业
  11. 使用ECMAScript 5严格模式提升开发效率
  12. RTP payload format for VP9 video
  13. 滴滴入局同城货运,一场闪电战,还是持久战?
  14. 利用dprintf为Cortex-M0/M0+添加类似SWO的调试输出口
  15. 艾盟赢销浅谈:CRM的本质和它的未来十年
  16. RTX 3090 与 Tesla P40与 Tesla M40 深度学习训练速度比较
  17. 多视图聚类的算法总结
  18. 手机客户端访问本机计算机局域网服务器
  19. 数据结构------最短路径(Dijkstra)算法(爆肝详解)
  20. Android端App无法抓包解决方法——Drony

热门文章

  1. PolyBase 指南
  2. kingwell Calendar V1.0 日历时间组件
  3. LINQPad学习与验证工具
  4. DDL修改表,删除表
  5. 大道至简 23种模式一点就通
  6. 对DbRuleAuthorizationProvider的修改
  7. ASP.NET Forums 2.0 本地化修改(四)
  8. 2021年寒假将至,教育部致信中小学生家长的一封信:人生如长跑,起步忌冲刺,薄发需厚积
  9. usb传输标准和接口标准
  10. python内置数字类型转换函数_Python学习 Day2-2 Python3的基本数据类型、数据内置类型转换函数...