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

C++八股 —— 函数指针与指针函数

文章目录

    • 1. 函数指针(Function Pointer)
    • 2. 指针函数(Pointer Function)
    • 3. void* func() 的作用
    • 4. 注意事项

函数指针(function pointer)和指针函数(pointer to function)是两个不同的概念。

1. 函数指针(Function Pointer)

  • 定义:指向函数的指针变量,保存函数的地址。

  • 用途:用于动态调用函数(如回调机制、策略模式)

  • 语法示例return_type (*pointer_name)(parameters)

    如:int (*funcPtr)(int, int)是一个指向返回值类型为int,参数为两个int的函数的指针。

2. 指针函数(Pointer Function)

  • 定义:返回值是指针类型的函数。

  • 用途:返回动态内存、数组或对象地址。

  • 语法示例

    int* createArray(int size) { return new int[size]; 
    }
    int* arr = createArray(10);  // 调用指针函数获取动态数组
    

3. void* func() 的作用

  • 定义:返回 void*(无类型指针)的函数。
  • 关键特性
    1. 通用性:可返回任意类型的指针(如 int*char* 等),但需显式类型转换后才能使用。
    2. 典型用途
      • 实现泛型编程(如C标准库的 malloc)。
      • 隐藏具体类型细节(如操作系统API返回句柄)。
  • 示例

    void* allocateMemory(size_t size) {return malloc(size);  // 返回void*类型的内存地址
    }
    int* buffer = (int*)allocateMemory(100 * sizeof(int));  // 显式转换类型
    

4. 注意事项

  1. 函数指针的兼容性
    • 需严格匹配函数签名(参数类型、返回类型)。
    • C++中建议优先使用 std::functionlambda 替代原生函数指针。
  2. 指针函数的内存管理
    • 返回动态内存时,需明确所有权(调用者负责释放)。
  3. void*的安全风险
    • 必须手动类型转换,避免未定义行为。
    • C++中推荐使用 模板继承 实现类型安全替代。

参考:

  1. DeepSeek
  2. 函数指针和指针函数的区别-CSDN博客
http://www.xdnf.cn/news/365005.html

相关文章:

  • PPI-ID: 德克萨斯大学研究团队最新款蛋白-蛋白互作(PPI)预测工具上线
  • Ascend的aclgraph(一)aclgraph是什么?torchair又是怎么成图的?
  • 2025年 全新 AI 编程工具 Cursor 安装使用教程
  • 2025数维杯数学建模C题完整限量论文:清明时节雨纷纷,何处踏青不误春?
  • 空间复杂度** 与 **所需辅助空间**
  • 33、前台搜索功能怎么实现?
  • 基环树(模板) 2876. 有向图访问计数
  • Dp通用套路(闫式)
  • OPENSSL-1.1.1的使用及注意事项
  • Qt 无边框窗口,支持贴边分屏
  • 大某麦演唱会门票如何自动抢
  • 高尔夫基本知识及规则·棒球1号位
  • PHP8报:Unable to load dynamic library ‘zip.so’ 错误
  • Xterminal(或 X Terminal)通常指一类现代化的终端工具 工具介绍
  • 攻防演练 | 关于蓝队攻击研判的3大要点解读
  • 分治算法-leetcode148题
  • archlinux 详解系统层面
  • RISC-V AIA SPEC学习(五)
  • Springboot+Vue+Mybatis-plus-Maven-Mysql项目部署
  • 可编辑56页PPT | 化工行业智慧工厂解决方案
  • nvidia-smi 和 nvcc -V 作用分别是什么?
  • 金贝灯光儿童摄影3大布光方案,解锁专业级童趣写真
  • 智能制造单元系统集成应用平台
  • SAM详解3.1(关于2和3的习题)
  • 学习黑客认识Security Operations Center
  • 雷赛伺服L7-EC
  • 抖音 “碰一碰” 发视频:短视频社交的新玩法
  • Midjourney-V7:支持参考图片头像或背景生成新保真图
  • Spring事务传播行为-实践向
  • 软件确认报告:审查功能、评估标准及推动软件稳定高效运行