C&C++ Function Pointer

Function Pointer

人生就是不断折磨自己!变得更强! ——@firestaradmin

See example:

int p; //这是整数型变量p

int *p; //这是整数型指针p

int *p[3]; //这是长度为3的整数型指针数组p,元素为整数型指针

int (*p)[3]; //这是一个数组指针,指向一个长度为3的整数型数组

int p(int); //这是函数声明,形参:整数型 ,返回值:整数型  等同于 int p(int x);

int *p(int); //这是函数声明,形参:整数型 ,返回值:整数型指针  等同于 int *p(int x);

int (*p)(int); //这是函数指针,指向有一个整数型形参和整数型返回值的函数

int (*p[3])(int);//这是函数指针数组,每个元素指向有一个整数型形参和整数型返回值的函数

int *(*p(int)); //这是函数声明,形参:整数型 ,返回值:指向整数型指针的指针  等同于 int **p(int) , int **p(int x) , 
//int *(*p(int x))

int *(*p(int))[3]; //这是一个函数声明,形参:整数型,返回值:一个数组指针数组,此数组内的指针,指向一个长度为3的整数型指针数组。
int **p(int)[3];
我知道这个很绕,简单说返回值就是这样: int *i[x][3]; //x是任意数

定义一个 int 型变量

int p;

定义一个 int 型指针 变量

int *p;

定义一个长度为3的 int 型指针数组

int *p[3];

定义一个指向长度为3的 int 型数组的指针

int (*p)[3];

定义一个形参为 int 返回值为int 的函数

int p(int);

定义一个形参为int 返回值为int 型指针的函数(指针函数)

int *p(int);

定义一个指向形参为 int 返回值为int 的函数指针

int (*p)(int);

定义一个长度为3的 指向形参为 int 返回值为int 的函数指针数组

int (*p[3])(int);

定义一个指向 形参为 int 返回值为int 型指针的函数指针

int *(*p)(int);

定义一个长度为3的 指向 形参为 int 返回值为int 型指针的函数指针数组

int *(*p[3])(int);

定义函数 形参为 int 返回值为int 型指针的指针的函数 (返回的是二维数组,子数组长度为3)

这个很绕,不要轻易去推敲,基本用不到

int *(*p(int))[3];
// return int shuzu[x][3]

本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!