函数指针和指针函数

函数指针和指针函数是两个在 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` 的整数数组,并返回指向这个数组的第一个元素的指针。调用者通过返回的指针可以访问和操作这个数组。

### 总结

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

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

相关推荐
南桥几晴秋6 分钟前
Qt显示类控件
开发语言·c++·qt
威桑15 分钟前
交叉编译过程中的踩坑与收获
linux·c++·arm·交叉编译
君义_noip17 分钟前
信息学奥赛一本通 1951:【10NOIP普及组】导弹拦截 | 洛谷 P1158 [NOIP 2010 普及组] 导弹拦截
c++·算法·csp-j·信息学奥赛
空空潍22 分钟前
hot100-滑动窗口最大值(day11)
数据结构·c++·算法·leetcode
朔北之忘 Clancy25 分钟前
2025 年 6 月青少年软编等考 C 语言一级真题解析
c语言·开发语言·c++·学习·算法·青少年编程·题解
꧁Q༒ོγ꧂1 小时前
C++ 入门完全指南(六)--指针与动态内存
开发语言·c++
永远不打烊1 小时前
c++ 11 之 并发与多线程
c++
say_fall1 小时前
C++ 类与对象易错点:初始化列表顺序 / 静态成员访问 / 隐式类型转换
android·java·开发语言·c++
ChoSeitaku1 小时前
16.C++入门:list|手撕list|反向迭代器|与vector对比
c++·windows·list
Qhumaing1 小时前
C++学习:【PTA】数据结构 7-1 实验6-1(图-邻接矩阵)
c++·学习·算法