首页 > 代码库 > C语言基础学习6: 指向函数的指针
C语言基础学习6: 指向函数的指针
1、函数指针变量调用函数
1 #include <stdio.h> 2 int max(int x, int y); 3 int max(int x, int y) 4 { 5 int z; 6 if(x<y) 7 z = y; 8 else 9 z = x;10 return z;11 }12 void main()13 {14 int a,b,c;15 scanf("a=%d,b=%d",&a,&b);16 c = max(a,b);17 printf("max = %d\n",c);18 }
用函数指针调用函数:
1 #include <stdio.h> 2 int max(int x, int y); 3 int max(int x, int y) 4 { 5 int z; 6 if(x<y) 7 z = y; 8 else 9 z = x;10 return z;11 }12 void main()13 {14 int a,b,c;15 int (*p)(int x, int y);16 scanf("a=%d,b=%d",&a,&b);17 p = max;18 c = (*p)(a,b);19 printf("max = %d\n",c);20 }
指针变量可以指向整型、字符串、数组,也可以指向一个函数。一个函数在编译时被分配一个入口地址,这个函数的入口地址就称为函数的指针。可以用一个指针变量指向这个函数,然后通过该指针变量调用此函数。
指向函数的指针变量的一般定义形式为:
数据类型 (*指针变量名)(函数参数列表)
例如上面的 int (*p)(int x, int y);
这里注意圆括号不能省去,因为()的优先级高于*,声明成了一个p函数,函数的返回值是指向整型变量的指针。
p = max; 作用是将函数max的入口地址赋给指针变量p。
和数组名表示数组首元素地址类似,函数名代表该函数的入口地址。
因此函数的调用可以通过函数名调用,也可以通过函数指针调用(即用指向函数的指针变量调用)。
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。