4.8.2函数指针和指针函数
(1)指针函数
即是带指针的函数,本质上是函数,返回类型是指针。形式:类型说明符 *函数名(形参表),下例中,指针函数的返回值是一个地址,使用的时候是*GetNum(num)。
#include <iostream>
using namespace std;
int *GetNum(int x); //指针函数声明形式
void main(void)
{
cout<<"===============start================"<<endl;
int num;
cout<<"Please enter the number between 0 and 6: ";
cin>>num;
cout<<"result is:"<<*GetNum(num)<<endl; //输出返回地址块中的值
}
int *GetNum(int x) {
static int num[]={0,1,2,3,4,5,6};
return &num[x]; //返回一个地址
}
(2)函数指针
即是指向函数的指针变量,本身是一个指针变量,表示一个指针,其指向一个函数。形式:类型类型说明符 (*指针变量名)(形参表),下例中直接将函数名赋值给指针变量名。
#include <iostream>
using namespace std;
int max(int a, int b) {
return a>b?a:b;
}
void main(void)
{
cout<<"===========start==========="<<endl;
int (*func)(int,int); //定义一个指向该函数形式的指针变量
func=max;
int a,b;
cout<<"Please enter two numbers:";
cin>>a>>b;
int result=(*func)(a,b);//运用指针变量调用函数,也可写成func(a,b)
cout<<"max="<<result<<endl;
}
重点(借鉴别人):两者主要区别,一个是函数(指针函数),一个是指针变量(函数指针),当你真正理解这句话的时候就可以完全理解两者的区别啦。