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

【C++】函数指针和指针函数

在 C++ 中,经常会遇到“函数指针”和“指针函数”这两个概念,虽然名字相似,但它们指的是完全不同的内容。下面详细介绍一下它们的区别和用法:


1. 函数指针

定义
函数指针是指向函数的指针。它存储了函数的地址,可以通过该指针来调用函数。函数指针的声明需要指明函数的返回类型和参数列表,确保类型匹配。

语法示例
假设有如下函数:

int add(int a, int b) {
    return a + b;
}

声明一个指向该函数的指针:

int (*funcPtr)(int, int) = add;

使用函数指针调用函数:

int result = funcPtr(3, 4); // result 为 7

应用场景

  • 回调函数:将函数作为参数传递给其他函数。
  • 动态选择函数:根据条件决定调用哪个函数。

2. 指针函数

定义
指针函数是指返回值为指针的函数。也就是说,函数执行后返回一个指针,而不是一个具体的值。

语法示例
假设我们有一个函数,返回一个指向 int 类型的指针:

int* getPointer(int& value) {
    return &value;
}

调用该函数时,会返回一个 int 指针:

int num = 10;
int* ptr = getPointer(num);

应用场景

  • 当需要从函数返回动态分配的内存地址或某个对象的地址时,常常会用到指针函数。

小结

  • 函数指针:是一种指针,指向一个函数,可以通过它调用该函数。
  • 指针函数:是一种函数,其返回值是一个指针。

理解这两个概念的关键在于关注“指针”是数据类型还是返回值的类型:

  • 如果在声明中指针符号(*)紧贴函数名之前,则表示“函数指针”。
  • 如果指针符号出现在函数返回类型的位置,则表示“指针函数”。

http://www.kler.cn/a/573711.html

相关文章:

  • 什么是美颜SDK?从几何变换到深度学习驱动的美颜算法详解
  • FieldFox 手持射频与微波分析仪
  • 六十天前端强化训练之第七天CSS预处理器(Sass)案例:变量与嵌套系统详解
  • 零基础C语言学习日志19(C语言内存函数)
  • 个推助力小米米家全场景智能生活体验再升级
  • 智能家居遥控革命!昂瑞微HS6621EM:用「芯」定义AIoT时代的语音交互标杆
  • 蓝桥杯备考:BFS最短路径之kotori迷宫
  • go数组的声明和初始化
  • 黄昏时间户外街拍人像Lr调色教程,手机滤镜PS+Lightroom预设下载!
  • 面试问题(一)
  • Python数据可视化——Matplotlib的基本绘图:图形、轴、标签
  • GPU 英伟达GPU架构回顾
  • 【Git】Git 初识
  • 利用PyQt简单的实现一个机器人的关节JOG界面
  • 心率提取,FFT
  • (一)Java虚拟机——JVM的组成
  • 从0开始的操作系统手搓教程21:进程子系统的一个核心功能——简单的进程切换
  • Pytorch中的ebmedding到底怎么理解?
  • el-tree右键节点动态位置展示菜单;el-tree的节点图片动态根据节点属性color改变背景色;加遮罩层(opacity)
  • 蓝桥备赛(九)- 结构体和类