函数指针和指针函数简介
时间:2010-11-27 来源:盟主仁兄
指针函数,其本质依然是一个函数,只不过其返回值是指针类型的。
指针函数的定义格式如下:
返回类型标识符 *函数名称(形式参数表) { 函数体 } 简单举例说明: #include<iostream> 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<<endl; return 0; }
运行结果如下:
函数指针本身应该首先应是指针变量,只不过该指针变量指向函数。 C程序在编译时,每一个函数都有一个入口地址,该入口地址就是函数指针所指向的地址。有了指向函数的指针变量后,可用该指针变量调用函数,就如同用指针变量可引用其他类型变量一样。 函数指针的声明方法为: 数据类型标志符 (指针变量名) (形参列表); 需要说明的一点是,赋给函数指针的函数应该和函数指针所指的函数原型是一致的。 简单举例说明: #include<iostream> 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<<"较大的数是:"<<z<<endl; return 0; }
函数指针本身应该首先应是指针变量,只不过该指针变量指向函数。 C程序在编译时,每一个函数都有一个入口地址,该入口地址就是函数指针所指向的地址。有了指向函数的指针变量后,可用该指针变量调用函数,就如同用指针变量可引用其他类型变量一样。 函数指针的声明方法为: 数据类型标志符 (指针变量名) (形参列表); 需要说明的一点是,赋给函数指针的函数应该和函数指针所指的函数原型是一致的。 简单举例说明: #include<iostream> 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<<"较大的数是:"<<z<<endl; return 0; }