函数指针的分析
来源:互联网 发布:淘宝能寄到印尼吗 编辑:程序博客网 时间:2024/06/14 11:57
第一点:函数指针分析
所谓函数指针,就是一种指向函数的指针。
其本质,还是一个指针。所以其定义方式类似于指针,但是仍旧有一些不一样。
当以方式如下:
void (*a)(int m,int n);
上述代码,意思是定义了一个函数指针,无返回值,即返回值为void,有两个形式参数,分别为int m,int n。
函数指针,只能指向与定义形式一致的函数。
例如有个函数如下:
void function1(int a1,int a2)
{
}
那么,函数指针a,就可以赋值了,如下代码所示:
a = function1;
假如有一下函数定义:
void f3()
{
}
那么,函数指针a就不可以赋值操作:a = f3;代码就是错误的。因为指针a的形式,与函数f3的形式不一致,即可以认为是数据类型不一致。
第二点:函数指针数组的定义
所谓函数指针数组,其本质,如字面意思,就是一个数组,但里边存储的确实指向函数的指针。
定义方式如下:
void (* f[3])(int a,int b);
其中,void 表示返回值的类型。f表示函数指针数组的变量名。3表示数组的大小。最后的(int a,int b),表示形式参数列表。其他类型的定义方法可以参照此格式。
示例如下:
void (* f[3])();
上述代码,定义了一个函数指针数组,大小为3,没有返回值,没有形式参数。
现定义函数原型:
void f1()
{
}
void f2()
{
}
void f3()
{
}
下面,进行函数指针数组的赋值操作:
即用函数的函数名,给函数指针赋值。其实,函数的函数名,就是该函数的入口地址。
操作的时候,就可以像正常函数一样操作。如下提示:
while(1)
注意一点,就是,操作的时候,毕竟是个函数指针,所以,有时候,很容易把()这个括号忘掉,这样的话,调用的就不是函数了。另外,还要注意不要越界。否则,容易操作内存操作错误。造成程序终止。
- 函数指针的分析
- 函数指针的透彻分析
- 关于函数指针和指针函数的分析
- 简单分析 指针数组 数组指针 函数指针 函数指针数组 指向函数指针数组的指针
- 指向函数的指针的分析
- 复杂的函数指针例子分析
- 指针数组 和 数组指针分析 main函数的参数
- 函数指针分析
- 函数与指针分析
- 函数返回指针分析
- 函数 与 指针 分析
- 函数与指针分析
- 函数与指针分析
- 函数与指针分析
- 指针函数 函数的指针
- 关于函数指针的个人理解,uboot中二重函数指针的实例分析
- 关于函数返回值为指针类型的分析
- 关于函数返回值为指针类型的分析
- 在redhat6.4 64位 中安装firefox浏览器的flash插件
- yii中登录后跳转回登录前请求的页面
- 河南财大计算机与信息工程学院CSDN社团 教学活动
- 成员变量[default] ===局部变量[NO]=== 初始化
- UML建模语言入门-视图,事物,关系,通用机制
- 函数指针的分析
- DNSPOD使用小结
- VC2010开发MFC ActiveX控件基础教程
- SNMP--How to install SNMP extension agent DLL(如何安装SNMP扩展代理DLL)
- 高通camera流程
- 《Architecture of a Database System》中文版
- android自定义控件--BadgeView
- 整理网站负载均衡架构
- HDU 3367 Pseudoforest 并查集求最大生成树及判断环