函数指针和指针函数

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

### 总结

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

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

相关推荐
CHHH_HHH7 分钟前
【C++11】深入解析C++可变参数模板
开发语言·c++·算法·stl·c++11
十五年专注C++开发26 分钟前
fatal error C1189: #error: WinSock.h has already been included 的解决方案
c++·socket·boost
旖-旎3 小时前
《LeetCode 53 最大子数组和 || LeetCode 918 环形子数组的最大和》
c++·算法·leetcode·动态规划
c238564 小时前
《动态规划:从“傻傻穷举”到“过目不忘”的修仙之路》
c++·算法·动态规划
王老师青少年编程5 小时前
csp信奥赛C++高频考点专项训练:【二分答案】案例2:木材加工
c++·二分答案·csp·高频考点·信奥赛·木材加工
aaPIXa6226 小时前
C++模板元编程:编译期计算Fibonacci数列
java·开发语言·c++
Augustzero6 小时前
`co_await` 按下暂停键之后:从零看懂 C++20 协程
c++·后端
知无不研7 小时前
c语言和c++中的静态关键字
开发语言·c++·静态关键字
思麟呀7 小时前
在C++基础上理解CSharp-7
java·jvm·c++·c#
2601_949818097 小时前
Vector从入门到应用(C++ STL动态数组万字全解
开发语言·c++