目录
- 函数指针是指向函数的指针,可以存储函数的地址并通过它来调用函数;指针函数则是返回指针的函数,其本质是一个函数,返回值是一个指针。
- 函数指针的定义中,指针符号
*
在函数名的前面,表示它是一个指针;指针函数的定义中,指针符号*
在返回类型的后面,表示函数返回一个指针。
一、函数指针
- 定义:函数指针是一个指向函数的指针,可以通过它来调用函数。它保存了一个函数的地址,可以指向任何具有相同签名(返回类型和参数列表)的函数。
- 语法:
返回类型 (*指针名)(参数类型);
- 示例:
// 定义一个函数
int add(int a, int b) {
return a + b;
}
// 定义一个函数指针
int (*funcPtr)(int, int);
// 将函数的地址赋给函数指针
funcPtr = add;
// 使用函数指针调用函数
int result = funcPtr(2, 3); // result = 5
- 用途:函数指针常用于回调函数、函数数组、实现多态等场景。
二、指针函数
- 定义:指针函数是一个返回指针的函数。这个函数的返回类型是一个指针。
- 语法:
返回类型* 函数名(参数类型);
- 示例:
// 定义一个返回指针的函数
int* getPointer() {
static int value = 10;
return &value;
}
// 调用指针函数
int* ptr = getPointer(); // ptr 指向 value
- 用途:指针函数常用于返回动态分配内存的地址或者返回某个对象的地址。