函数指针和指针函数

函数指针和指针函数是两个在 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 分钟前
力扣第1题:两数之和(C++)
c++·算法
XH华18 分钟前
备战蓝桥杯,第六章:C++语言的输入输出(下)
c++·职场和发展·蓝桥杯
赤水无泪28 分钟前
03 C++语言---预处理器
开发语言·c++
李余博睿(新疆)29 分钟前
c++三级
c++
2401_8321319540 分钟前
模板编译期机器学习
开发语言·c++·算法
2401_838472511 小时前
单元测试在C++项目中的实践
开发语言·c++·算法
naruto_lnq1 小时前
移动语义与完美转发详解
开发语言·c++·算法
赤水无泪1 小时前
04 C++语言---运算符和符号
开发语言·c++
从此不归路1 小时前
Qt5 进阶【10】应用架构与插件化设计实战:从「单体窗口」走向「可扩展框架」
开发语言·c++·qt·架构
瓦特what?1 小时前
C++编程防坑指南(小说版)
android·c++·kotlin