重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
1、首先打开vs2014,新建一个项目。
创新互联-专业网站定制、快速模板网站建设、高性价比金昌网站开发、企业建站全套包干低至880元,成熟完善的模板库,直接使用。一站式金昌网站制作公司更省心,省钱,快速模板网站建设找我们,业务覆盖金昌地区。费用合理售后完善,10余年实体公司更值得信赖。
2、添加头文件。
3、添加main主函数。
4、定义一个函数addTwoNumbers。
5、将addTwoNumbers函数地址赋值给ptr_sum。
6、调用函数指针求和。
7、运行程序,看看结果。
注意事项:
因此“函数指针”本身首先应是指针变量,只不过该指针变量指向函数。这正如用指针变量可指向整型变量、字符型、数组一样,这里是指向函数。
函数指针 就是指向函数的指针
比如
void pr_int(int a)//函数
{
printf("%d\n",a);
}
void func(void (*p)(int), int m)//函数指针做参数
{
p(m);//调用函数指针
}
int main()
{
func(pr_int, 100);
return 0;
}
#includestdio.h
//定义类型fun_ptr,它是一个函数指针,指向的函数返回值为int,参数为int
typedef int (*fun_ptr)(int);
//fun1
int fun1(int a)
{
printf("call fun1,pram=%d,return %d+1\n", a, a);
return a+1;
}
//fun2
int fun2(int a)
{
printf("call fun2,pram=%d,return %d+2\n", a, a);
return a+2;
}
int main(int argc, char *argv[])
{
int a = 10;
int s = 0;
//定义函数指针类型的变量p_fun
fun_ptr p_fun;
//指向fun1
p_fun = fun1;
//执行
s=p_fun(a);
printf("s=%d\n", s);
//指向fun2
p_fun = fun2;
//执行
s=p_fun(a);
printf("s=%d\n", s);
return 0;
}
执行结果:
函数指针是指向函数的指针变量。 因而“函数指针”本身首先应是指针变量,只不过该指针变量指向函数。这正如用指针变量可指向整型变量、字符型、数组一样,这里是指向函数。
函数指针有两个用途:调用函数和做函数的参数。
函数指针的声明方法为:
返回值类型 ( * 指针变量名) ([形参列表]);
如:
int func(int x); /* 声明一个函数 */
int (*f) (int x); /* 声明一个函数指针 */
f=func; /* 将func函数的首地址赋给指针f */
或者使用下面的方法将函数地址赋给函数指针:
f = func;
赋值时函数func不带括号,也不带参数,由于func代表函数的首地址,因此经过赋值以后,指针f就指向函数func(x)的代码的首地址。
下面的程序说明了函数指针调用函数的方法:
#includestdio.h
int max(int x,int y){return (xy? x:y);}
int main()
{
int (*ptr)(int, int);
int a, b, c;
ptr = max;
scanf("%d%d", a, b);
c = (*ptr)(a,b);
printf("a=%d, b=%d, max=%d", a, b, c);
return 0;
}