指向函数的指针与返回指针值的函数
2013-08-21 14:22
211 查看
http://hi.baidu.com/passerryan/item/99aebc3ab57f3d8df5e4ad39
1、指向函数的指针定然形式为: 数据类型 (*指针变量名)(); 例如:int (*p)(); 定义P是一个指向函数的指针变量,此函数带回整型的返回值。若写成 int *p(); 它就声明了一个函数,函数的返回值是指向整型变量的指针。在int (*p)(); 的定义中,(*p) 和函数名是等价的。
函数指针变量常用的用途之一是把指针作为参数传递到其他函数。
2、返回指针值的函数
定义形式为:类型名 *函数名(参数表列)例如:int *a(int x, int y); a是函数名,调用它以后能得到一个指向整型数据的指针。
3、有关指针的数据类型的小结
int i; 定义整型变更;
int *P p为指向整型数据的指针变量
int a
定义一个数组a,它有n 个变量
int *p
定义一个指针数组,即数组里存放的都是指向整型元素的指针
int (*p)
定义一个指向数组的指针变量
int f() 定义一个返回值为整型的函数
int *p() 定义一个函数,该函数返回一个指向整型元素的指针变量
int (*p)() 指向函数的指针,该函数返回一个整型值
int **p p是一个指针变量,它指向一个指向整型数据的指针变量
返回指向函数的指针 例:
在C++ primer 238页中出现的int(*ff(int))(int*,int) ,解释为:
ff(int)是一个函数,带有一个int型的形参,所以,这个首先是一个函数。如下面例子中的int (*funOne(int number))(int a, int b)的funOne(int number).
其返回的使int (*)(int*,int)的函数指针,这个函数指针如下文中的int funtwo(int a,int b),funtwo本身就是一个指针。
#include <iostream>
using namespace std;
int funTwo(int a, int b)
{
return a * b;
}
// funOne是一个函数,带有一个int型参数,它返回一个指向函数的指针
// 这个指向函数的指针指向一个返回int型,并带有两个int型的形参的函数
int (*funOne(int number))(int a, int b)
{
return funTwo;
}
int main()
{
cout << funOne(1)(3, 10) << endl;
return 0;
}
----------
OutPut:
对于上文的funcOne(int number)(int int)我们可以如下方式引用:
typedef int (*PF)(int, int); //申明函数指针
PF ff(int);
// ff returns a pointer to function
相关文章推荐
- 指向函数的指针和返回指针的函数
- C语言学习笔记【指针03】指向函数的指针与返回指针值的函数
- C++中函数怎么返回一个二维数组。指针怎么指向二维数组?
- 【C语言】14-返回指针的函数与指向函数的指针
- 【C语言】-返回指针的函数与指向函数的指针
- 我也要学C语言-第十六章:返回指针值的函数与指向函数的指针以及逻辑与算法分离
- 【C语言】14-返回指针的函数与指向函数的指针
- 返回指向函数的指针
- 接受int形参(double,,等等)返回int(...);并且一个vector对象保存指向这些函数的指针;进行加减乘除;输出结果
- 返回指针的函数与指向函数的指针
- 返回指针的函数 与 指向函数的指针
- 指向指针的指针在函数中参数传递并返回
- 用变量a给出下面的定义:一个有10个指针的数组,该指针指向一个函数,该函数有一个整形参数并返回一个整型数
- 切勿使用:指向局部变量的指针作为函数的返回指针!
- 黑马程序员--IOS学习笔记(指针、返回指针的函数、指向函数的指针)
- 【C语言】14-返回指针的函数与指向函数的指针
- 编写一个名为my_strcpy_end的函数, 他返回一个指向目标字符串末尾的指针 (也就是说指向NUL字节的指针)
- C/C++—— 写一个函数,它的参数为指向函数的指针,返回类型也为指向函数的指针
- 【C语言】14-返回指针的函数与指向函数的指针
- 声明一个指向含有10个元素的数组的指针,其中每个元素是一个函数指针,该函数的返回值是int,参数是int*,正确的是()