当前位置: 首页 > news >正文

【面试刷题】——函数指针和指针函数

“函数指针”(function pointer)和 “指针函数”(pointer to function)是两个不同的概念,它们涉及到指针和函数的结合使用。

函数指针(Function Pointer):

函数指针是指向函数的指针变量。它可以用来存储函数的地址,以便在程序运行时动态调用不同的函数。函数指针的声明方式如下:

#include <iostream>int add(int a, int b) {return a + b;
}int subtract(int a, int b) {return a - b;
}int main() {int (*funcPtr)(int, int); // 声明一个函数指针funcPtr = add; // 指向add函数std::cout << funcPtr(5, 3) << std::endl; // 调用add函数funcPtr = subtract; // 指向subtract函数std::cout << funcPtr(5, 3) << std::endl; // 调用subtract函数return 0;
}

这个示例中,funcPtr 是一个函数指针,它可以根据需要指向不同的函数,并通过调用函数指针来调用相应的函数。

指针函数(Pointer to Function):

指针函数是一个返回指向函数的指针的函数。换句话说,它是一个函数,其返回类型是一个函数指针。指针函数的声明方式如下:

#include <iostream>int add(int a, int b) {return a + b;
}int subtract(int a, int b) {return a - b;
}int (*getOperation(bool addition)) (int, int) {if (addition) {return add;} else {return subtract;}
}int main() {int (*funcPtr)(int, int) = getOperation(true); // 使用指针函数获取函数指针std::cout << funcPtr(5, 3) << std::endl; // 调用add函数return 0;
}

在这个示例中,getOperation 是一个指针函数,它根据传入的参数返回不同的函数指针。

总结来说,函数指针是指向函数的指针变量,而指针函数是返回函数指针的函数。它们都是在C++中用于实现函数回调、策略模式和动态函数调用等高级编程技术的重要工具。

http://www.lryc.cn/news/168851.html

相关文章:

  • 目标分类笔记(一): 利用包含多个网络多种训练策略的框架来完成多目标分类任务(从数据准备到训练测试部署的完整流程)
  • 【100天精通Python】Day61:Python 数据分析_Pandas可视化功能:绘制饼图,箱线图,散点图,散点图矩阵,热力图,面积图等(示例+代码)
  • 2023华为产品测评官-开发者之声 | 华为云CodeArts征文活动,多重好礼邀您发声!
  • Python 图形化界面基础篇:获取文本框中的用户输入
  • 【驱动开发】实现三盏灯的控制,编写应用程序测试
  • Vue3+ElementUI使用
  • MySQL 和 MariaDB 版本管理的历史背景及差异
  • linux驱动开发--day4(字符设备驱动注册内部流程、及实现备文件和设备的绑定下LED灯实验)
  • elasticsearch5-RestAPI操作
  • 数据结构与算法(一)
  • Matlab--微积分问题的计算机求解
  • GRU实现时间序列预测(PyTorch版)
  • 文本框粘贴时兼容Unix、Mac换行符的方法源码
  • 2023年华为杯研究生数学建模竞赛辅导
  • post更新,put相当于删除重新增一条
  • python责任链模式
  • 大数据技术准备
  • 【力扣周赛】第 362 场周赛(⭐差分匹配状态压缩DP矩阵快速幂优化DPKMP)
  • 四大函数式接口(重点,必须掌握)
  • 2023Web前端逻辑面试题
  • uniapp中git忽略node_modules,unpackage文件
  • Json-Jackson和FastJson
  • RK3588 点亮imx586摄像头
  • C++---继承
  • 使用新版Maven-mvnd快速构建项目
  • 【ICASSP 2023】ST-MVDNET++论文阅读分析与总结
  • MySQL 面试题——MySQL 基础
  • JDK9特性——概述
  • 征战开发板从无到有(三)
  • Linux设备树详细学习笔记