黑马程序员技术交流社区

标题: 指向函数的指针 [打印本页]

作者: woniuzhanshi    时间: 2016-3-30 18:41
标题: 指向函数的指针

指向函数的指针有什么用啊?举个通俗易懂的例子呗
作者: flora时光    时间: 2016-3-30 18:41
函数名是函数所占内存区的首地址,把函数首地址赋予一个指针变量,使该指针变量指向该函数,然后通过指针变量就可以找到并调用该函数
  1. int sum(int a,int b);
  2. int (*p1)(int a,int b);
  3. p1 = sum;
复制代码

此处的指针函数p1,可以存放返回值是int型,有两个int型参数的函数
1、(*p1)这个括号不能省略/2、此处的*只是一种表示符号,代表是指针,不是赋值运算
3、函数指针变量不能进行算数运算(和数组指针不同)
作者: 小灰辉    时间: 2016-3-30 21:59
<一>用函数指针变量调用函数"
指针变量指向整形变量、字符串、数组、结构体、也可以指向一个函数。一个函数在编译时被分配一个入口地址。这个入口地址就称为函数指针。可以用一个指针变量指向函数,然后通过该指针变量调用此函数。
(1) 指向函数的指针变量的一般定义形式为:

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

  这里数据类型就是函数返回值的类型
(二) 用指向函数的指针作为函数参数

  函数指针变量通常的用途之一就是把指针作为参数传递到其他函数。

  函数的参数可以是变量、指向变量的指针变量、数组名、指向数组的指针变量,也可以是指向函数的指针也可以作为参数,以实现函数地址的传递,这样就能够在被调用的函数中使用实参函数。
作者: 小灰辉    时间: 2016-3-30 22:02
<一>用函数指针变量调用函数"(二) 用指向函数的指针作为函数参数
作者: guozhenxing    时间: 2016-3-30 22:36
看完才知道我只是打酱油的。专业不对口
作者: 无波无澜    时间: 2016-4-2 19:14
简单来说就是这个指针 就是Java里那个你new出来的类,通过这个指针你可以直接去调用那个方法




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2