返回指向函数的指针
2013-03-31 12:27
218 查看
函数可以返回指向函数的指针,但是,正确写出这种返回类型相当不容易:
阅读函数指针声明的最佳方法是从声明的名字开始由里而外理解。
要理解该声明的含义,首先观察:
ff(int)
将 ff 声明为一个函数,它带有一个 int 型的形参。该函数返回
int (*)(int*, int);
它是一个指向函数的指针,所指向的函数返回 int 型并带有两个分别是int* 型和 int 型的形参。
以上文字摘自《C++ Primer》,其实有一个方法理解起来更简单:
将ff(int)看成一个变量,假设为p,那么上面这个函数就变成:
这样就一目了然,p是一个指向函数的指针,它指向的函数有两个参数,分别是int *和int型,该函数的返回类型是int。这是其一。
其二:因为p此时代表的实际上是:ff(int),所以,可以理解为p是ff(int)函数的返回值。
综合起来解释就是:ff(int)函数返回一个指针,这个指针指向一个函数,该函数“有两个参数,分别是int *和int型,该函数的返回类型是int”。
// ff is a function taking an int and returning a function pointer // the function pointed to returns an int and takes an int* and an int int (*ff(int))(int*, int);
阅读函数指针声明的最佳方法是从声明的名字开始由里而外理解。
要理解该声明的含义,首先观察:
ff(int)
将 ff 声明为一个函数,它带有一个 int 型的形参。该函数返回
int (*)(int*, int);
它是一个指向函数的指针,所指向的函数返回 int 型并带有两个分别是int* 型和 int 型的形参。
以上文字摘自《C++ Primer》,其实有一个方法理解起来更简单:
将ff(int)看成一个变量,假设为p,那么上面这个函数就变成:
int (*p)(int*, int); //ff(int)被看作一个整体p
这样就一目了然,p是一个指向函数的指针,它指向的函数有两个参数,分别是int *和int型,该函数的返回类型是int。这是其一。
其二:因为p此时代表的实际上是:ff(int),所以,可以理解为p是ff(int)函数的返回值。
综合起来解释就是:ff(int)函数返回一个指针,这个指针指向一个函数,该函数“有两个参数,分别是int *和int型,该函数的返回类型是int”。
相关文章推荐
- 指向函数的指针和返回指针的函数
- 【C语言】14-返回指针的函数与指向函数的指针
- C++中函数怎么返回一个二维数组。指针怎么指向二维数组?
- 【C语言】14-返回指针的函数与指向函数的指针
- 指向指针的指针在函数中参数传递并返回
- 【C语言】-返回指针的函数与指向函数的指针
- 我也要学C语言-第十六章:返回指针值的函数与指向函数的指针以及逻辑与算法分离
- 接受int形参(double,,等等)返回int(...);并且一个vector对象保存指向这些函数的指针;进行加减乘除;输出结果
- 返回指针的函数与指向函数的指针
- 返回指针的函数 与 指向函数的指针
- 用变量a给出下面的定义:一个有10个指针的数组,该指针指向一个函数,该函数有一个整形参数并返回一个整型数
- 切勿使用:指向局部变量的指针作为函数的返回指针!
- 黑马程序员--IOS学习笔记(指针、返回指针的函数、指向函数的指针)
- 【C语言】14-返回指针的函数与指向函数的指针
- 编写一个名为my_strcpy_end的函数, 他返回一个指向目标字符串末尾的指针 (也就是说指向NUL字节的指针)
- C/C++—— 写一个函数,它的参数为指向函数的指针,返回类型也为指向函数的指针
- 【C语言】14-返回指针的函数与指向函数的指针
- 声明一个指向含有10个元素的数组的指针,其中每个元素是一个函数指针,该函数的返回值是int,参数是int*,正确的是()
- C语言中返回指针的函数和指向函数的指针
- 20返回指针的函数与指向函数的指针