函数指针做函数参数
来源:互联网 发布:俄罗斯进出口贸易数据 编辑:程序博客网 时间:2024/05/27 01:20
一、函数指针:
函数指针是指向函数的指针变量,即本质是一个指针变量。
int (*f) (int x); /*声明一个函数指针 */
f=func; /*将func函数的首地址赋给指针f */
指向函数的指针包含了函数的地址,可以通过它来调用函数。声明格式如下:
类型说明符 (*函数名)(参数)
其实这里不能称为函数名,应该叫做指针的变量名。这个特殊的指针指向一个返回整型值的函数。指针的声明必须和它指向函数的声明保持一致。
指针名和指针运算符外面的括号改变了默认的运算符优先级。如果没有圆括号,就变成了一个返回整型指针的函数的原型声明。
例如:
void (*fptr)();
把函数的地址赋值给函数指针,可以采用下面两种形式:
fptr=&Function;
fptr=Function;
取地址运算符&不是必需的,因为单单一个函数标识符就标号表示了它的地址,如果是函数调用,还必须包含一个圆括号括起来的参数表。
可以采用如下两种方式来通过指针调用函数:
x=(*fptr)();
x=fptr();
第二种格式看上去和函数调用无异。但是有些程序员倾向于使用第一种格式,因为它明确指出是通过指针而非函数名来调用函数的。下面举一个例子:
void (*funcp)();
void FileFunc(),EditFunc();
main()
{
funcp=FileFunc;
(*funcp)();
funcp=EditFunc;
(*funcp)();
}
void FileFunc()
{
printf(FileFunc\n);
}
void EditFunc()
{
printf(EditFunc\n);
}
程序输出为:
FileFunc
EditFunc
主要的区别是一个是指针变量,一个是函数。在使用是必要要搞清楚才能正确使用
二、函数指针作函数参数
请看链接
http://www.cnblogs.com/uniqueliu/archive/2011/07/27/2118619.html
- 指针做函数参数
- 函数指针做参数
- 指针做函数参数
- 函数指针做参数
- 函数指针做函数参数
- 函数指针做函数参数
- 函数指针,指针函数,指针的指针做函数参数
- 指针做函数参数使用
- 问题:指针做函数参数
- c指针做函数参数
- 指针数组做函数参数
- 函数指针做函数参数的意义
- 函数指针做函数参数思想剖析
- 函数指针做函数参数浅析
- 善用指针---用指针做函数参数
- 多维数组的指针做函数参数
- 二维指针做函数参数传递问题
- 指针数组做函数参数的退化
- hdu 1096 A+B for Input-Output Practice (VIII)
- &和&&的区别
- MySQL索引 查看、创建、删除
- android学习笔记(2)
- 实际用户ID,有效用户ID及设置用户ID
- 函数指针做函数参数
- Assertion failure in -[UIView layoutSublayersOfLayer:]
- 英语不好,弄个eclipse汉化玩玩
- 2015.6.23-2015.6.25上海科技大学数据科学国际学术会议( SSDS 2015)之行
- 收藏DP题目
- C++中定义一个不能被继承的类
- LVS三种工作模式、十种调度算法介绍
- cocos2d-x 百分比动作1 Progress半径模式
- Android时钟应用的定时框架分析