函数指针的2种形式:
1、格式:(返回值类型)( *函数名)(参数列表)
例:
#include "stdafx.h"
#include<stdlib.h>
//定义一个指针变量function,它指向一个参数是2个int类型,返回值是int的函数,要赋值才能使用
int (* function)(int,int);
//定义一个函数,函数名就是这个函数的地址,也就是指针
int add(int a,int b)
{
return a+b;
}
void main()
{
int c=0;
function = add; //把函数add的地址赋值给上面定义的指针变量function
c = (* function)(2,3); //相当于是指针变量function 指向add函数,去执行它得到相应的结果
printf("%d",c);
system("pause");
}
2、使用typedef
格式:typedef(返回值类型)(调用约定 *函数名)(参数列表)
#include "stdafx.h"
#include<stdlib.h>
//类型重定义一个函数指针类型
typedef int (__cdecl* function)(int,int);
//定义一个函数
int add(int a,int b)
{
return a+b;
}
void main()
{
function func;
func = add;
int c = 0;
c = func(2,3);
printf("%d\n",c);
system("pause");
}