函数指针和指针函数

[复制链接]
641|11
 楼主| zheng522 发表于 2016-10-27 17:10 | 显示全部楼层 |阅读模式
函数指针和指针函数
 楼主| zheng522 发表于 2016-10-27 17:21 | 显示全部楼层
函数指针和指针函数

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
quangg 发表于 2016-10-27 17:25 | 显示全部楼层
在程序运行中,函数代码是程序的算法指令部分,它们和数组一样也占用存储空间,都 有相应的地址。可以使用指针变量指向数组的首地址,也可以使用指针变量指向函数代码的首地 址,指向函数代码首地址的指针变量称为函数指针
heping517 发表于 2016-10-27 17:26 | 显示全部楼层
函数类型 (*指针变量名)(形参列表);
“函数类型”说明函数的返回类型,由于“()”的优先级高于“*”,所以指针变量名外的括号必不可少, 后面的“形参列表”表示指针变量指向的函数所带的参数列表。
上山砍老虎 发表于 2016-10-27 17:27 | 显示全部楼层
函数指针和它指向的函数的参数个数和类型都应该是—致的;
上山砍老虎 发表于 2016-10-27 17:27 | 显示全部楼层
函数指针的类型和函数的返回值类型也必须是一致的
雾霾和青山 发表于 2016-10-27 17:31 | 显示全部楼层
函数名和数组名一样代表了函数代码的首地址,因此在赋值时,直接将函数指针指向函数名就行 了。
雾霾和青山 发表于 2016-10-27 17:32 | 显示全部楼层
赋值时函数 func不带括号,也不带参数,由于 func代表函数的首地址,因此经过赋值以后,指 针 f 就指向函数 func(x)的代码的首地址。
雾霾和青山 发表于 2016-10-27 17:33 | 显示全部楼层
函数指针是通过函数名及有关参数进行调用的。
雾霾和青山 发表于 2016-10-27 17:34 | 显示全部楼层
与其他指针变量相类似,如果指针变量 pi 是指向某整型变量 i 的指针,则*p 等于它所指的变量i; 如果 pf 是指向某浮 点型变量 f 的指针,则*pf就等价于它所指的变量 f。同样地,*f 是指向函数 func(x)的指针,则*f 就代表它所指向的函数 func
雾霾和青山 发表于 2016-10-27 17:35 | 显示全部楼层
执行了 f=func;之后,(*f)和 func代表 同一函数
雾霾和青山 发表于 2016-10-27 17:36 | 显示全部楼层
由于函数指针指向存储区中的某个函数,因此可以通过函数指针调用相应的函数。现在我们就讨 论如何用函数指针调用函数
您需要登录后才可以回帖 登录 | 注册

本版积分规则

74

主题

823

帖子

3

粉丝
快速回复 在线客服 返回列表 返回顶部