Chinaunix首页 | 论坛 | 博客
  • 博客访问: 150986
  • 博文数量: 33
  • 博客积分: 1494
  • 博客等级: 上尉
  • 技术积分: 325
  • 用 户 组: 普通用户
  • 注册时间: 2010-06-24 21:50
文章分类

全部博文(33)

文章存档

2014年(1)

2013年(1)

2012年(2)

2011年(3)

2010年(26)

我的朋友

分类: C/C++

2010-11-27 13:06:51

指针函数,其本质依然是一个函数,只不过其返回值是指针类型的。

指针函数的定义格式如下:

返回类型标识符 *函数名称(形式参数表)  
{
 函数体 
简单举例说明:
#include
using namespace std;
/***定义指针函数,函数功能是返回num[index]的地址***/
int * find(int num[], int index)
{
return &num[index];
}
int main()
{
int a[6] = {1, 4, 6, 3, 7, 9};
int *n = find(a, 3);
cout<<*n<
return 0;
}

运行结果如下:


函数指针本身应该首先应是指针变量,只不过该指针变量指向函数。
C程序在编译时,每一个函数都有一个入口地址,该入口地址就是函数指针所指向的地址。有了指向函数的指针变量后,可用该指针变量调用函数,就如同用指针变量可引用其他类型变量一样。
函数指针的声明方法为:  
数据类型标志符 (指针变量名) (形参列表); 
需要说明的一点是,赋给函数指针的函数应该和函数指针所指的函数原型是一致的。 
简单举例说明:
#include
using namespace std;
/*函数功能:返回两个整形数中较大的那个*/
int max(int a, int b)
{
return a > b ? a : b;
}
int main()
{
//声明一函数指针
int (*getMax)(int, int);
int x = 45;
int y = 90;
//将max函数的首地址赋给指针getMax
getMax = max;
int z = getMax(x, y);
cout<<"较大的数是:"<
return 0;
}

运行结果如下:

阅读(703) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~