码迷,mamicode.com
首页 > 编程语言 > 详细

C语言基础学习6: 指向函数的指针

时间:2014-07-22 22:48:34      阅读:232      评论:0      收藏:0      [点我收藏+]

标签:style   blog   http   color   os   strong   

1、函数指针变量调用函数

bubuko.com,布布扣
 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 }
View Code

用函数指针调用函数:

bubuko.com,布布扣
 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 }
View Code

指针变量可以指向整型、字符串、数组,也可以指向一个函数。一个函数在编译时被分配一个入口地址,这个函数的入口地址就称为函数的指针。可以用一个指针变量指向这个函数,然后通过该指针变量调用此函数。

指向函数的指针变量的一般定义形式为:

数据类型 (*指针变量名)(函数参数列表)

例如上面的 int (*p)(int x, int y);

这里注意圆括号不能省去,因为()的优先级高于*,声明成了一个p函数,函数的返回值是指向整型变量的指针。

p = max; 作用是将函数max的入口地址赋给指针变量p。

和数组名表示数组首元素地址类似,函数名代表该函数的入口地址。

因此函数的调用可以通过函数名调用,也可以通过函数指针调用(即用指向函数的指针变量调用)。

C语言基础学习6: 指向函数的指针,布布扣,bubuko.com

C语言基础学习6: 指向函数的指针

标签:style   blog   http   color   os   strong   

原文地址:http://www.cnblogs.com/iambitiousman/p/3855963.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!