函数指针和指针函数

函数指针和指针函数

1) 函数指针(pointer to function)

定义:能“指向函数”的指针变量——保存的是函数入口地址,可通过它调用该函数。
读法口诀:先看变量名,再沿着括号和 * 读——“指针 → 指向 → 函数”。

基本声明

1
2
// 指向:参数(int,int) 返回 int 的函数
int (*pf)(int, int) = nullptr;
  • pf 是指针;(*pf)(int,int) 表示“pf 指向一个能用 (int,int) 调用的函数”;函数返回 int

2) 指针函数(function returning pointer)

定义返回类型是指针的函数(函数自己不是指针)。
读法口诀:先看返回类型最后的 *,再读函数参数。

基本声明

1
2
3
int* get();         // 返回 int* 的函数
const char* name(); // 返回 const char* 的函数
int* foo(double x, int y); // 返回 int*,参数 (double,int)