函数指针和指针函数

函数指针和指针函数是两个在 C 和 C++ 编程中常见的概念,它们在语法和用途上有所不同。下面将分别解释这两个概念。

### 函数指针

函数指针是一个指向函数的指针变量。它存储了函数的地址,可以用来动态调用不同的函数。函数指针的声明方式取决于它所指向的函数的类型(包括返回类型、参数类型和数量)。函数指针的主要作用是实现回调函数和策略模式,允许程序在运行时选择合适的函数来执行。

下面是一个函数指针的示例:

cpp 复制代码
// 假设有一个返回类型为 int,参数为两个 int 的函数
int add(int a, int b) {
    return a + b;
}

// 声明一个指向这种类型函数的指针
int (*functionPtr)(int, int);

// 将 functionPtr 指向 add 函数
functionPtr = add;

// 通过函数指针调用 add 函数
int result = functionPtr(3, 4);
```

### 指针函数

指针函数,又称为函数指针类型,是一个返回指针类型的函数。指针函数的声明方式是在函数返回类型前面加上星号(*),表示该函数返回一个指针。指针函数通常用于返回动态分配的内存地址,或者返回指向其他函数或数据的指针。

下面是一个指针函数的示例:

cpp 复制代码
```c
// 声明一个返回 int* 类型(即指向 int 的指针)的函数
int* createArray(int size) {
    int* arr = new int[size]; // 动态分配内存
    // 初始化数组...
    return arr;
}

// 调用指针函数并获得返回的指针
int* myArray = createArray(10);
```

在这个例子中,`createArray` 函数动态分配了一个大小为 `size` 的整数数组,并返回指向这个数组的第一个元素的指针。调用者通过返回的指针可以访问和操作这个数组。

### 总结

  • **函数指针**:是一个指针,指向一个函数。它允许程序动态地选择和调用不同的函数。

  • **指针函数**:是一个函数,返回一个指针。它通常用于返回动态分配的内存地址或其他数据的指针。

相关推荐
海棠玛卡8 分钟前
C/C++内存管理
c++
虾球xz24 分钟前
CppCon 2018 学习:THE MOST VALUABLE VALUES
开发语言·c++·学习
2401_881244402 小时前
牛客周赛99
c++
山登绝顶我为峰 3(^v^)35 小时前
如何录制带备注的演示文稿(LaTex Beamer + Pympress)
c++·线性代数·算法·计算机·密码学·音视频·latex
十五年专注C++开发8 小时前
CMake基础:条件判断详解
c++·跨平台·cmake·自动化编译
QuantumStack10 小时前
【C++ 真题】P1104 生日
开发语言·c++·算法
天若有情67310 小时前
01_软件卓越之道:功能性与需求满足
c++·软件工程·软件
whoarethenext10 小时前
使用 C++/OpenCV 和 MFCC 构建双重认证智能门禁系统
开发语言·c++·opencv·mfcc
Jay_51512 小时前
C++多态与虚函数详解:从入门到精通
开发语言·c++
xiaolang_8616_wjl12 小时前
c++文字游戏_闯关打怪
开发语言·数据结构·c++·算法·c++20