关于函数指针和指针函数的总结
2015-08-04 10:18
183 查看
1,函数指针,实质上是一个指针,只不过是指向函数的指针,我们都知道数组名代表的是数组元素的首地址,是一个常量,那么一个函数名也可以代表该函数第一条指令的地址,即函数的入口地址,是一个常量地址。我们可以用一个指针变量指向这个常量地址,用来调用这个函数,用这个函数指针的好处是可以指向多个函数的入口地址,如果需要,我们就可以调用某个函数。
2,指针函数,实质上是一个函数,既然是一个函数,那么它就有返回类型,只不过它返回的是指针,是一个地址。
3,函数指针的声明时,必须与它指向的函数的返回类型,参数类型,参数个数一致,否则编译器报错。
4,将函数的入口地址赋给一个函数指针时,只需将函数名赋给函数指针,不能将函数名后带的参数一起赋给函数指针。例如,声明一个函数指针和一个普通的函数。
int (*p)(int a,int b) //函数指针
int max(int m,int n)//普通的函数
p=max 正确
p=max(m,n) 错误
5,用函数指针来调用时,只需将函数名换成(*p),根据需要再加上实参即可
6,函数指针只能指向函数的入口地址,不能进行p++,p--运算,来指向函数中间的某一条指令。
2,指针函数,实质上是一个函数,既然是一个函数,那么它就有返回类型,只不过它返回的是指针,是一个地址。
3,函数指针的声明时,必须与它指向的函数的返回类型,参数类型,参数个数一致,否则编译器报错。
4,将函数的入口地址赋给一个函数指针时,只需将函数名赋给函数指针,不能将函数名后带的参数一起赋给函数指针。例如,声明一个函数指针和一个普通的函数。
int (*p)(int a,int b) //函数指针
int max(int m,int n)//普通的函数
p=max 正确
p=max(m,n) 错误
5,用函数指针来调用时,只需将函数名换成(*p),根据需要再加上实参即可
6,函数指针只能指向函数的入口地址,不能进行p++,p--运算,来指向函数中间的某一条指令。
相关文章推荐
- 南邮 OJ 1068 烦恼的中学生
- ${pageContext.request.contextPath} JSP取得绝对路径
- oc之NSDictionaryAndGather
- 怎么去除table多余出来的行,我的table里面只显示一条记录,但是下面出现很多空白的行,要怎么去掉
- 线段树-区间更新
- Java学习笔记-------路径分隔符
- 日经春秋 20150804
- windows7 32位如何安装python 的scikiet-learn机器学习包问题
- 使用ViewPager实现引导页,最后一页左滑跳转。
- linux_c 开发(6-1)多线程程序设计_线程基础
- Nginx控制域名301跳转出现"此网页包含重定向循环"
- 加载Nib的2种方法
- fillder 手机抓包
- c++中vector容器的用法
- 南邮 OJ 1066 堆排序
- Ruby on Rails迁移时的一些注意事项
- 合并百度影音的离线数据( with python 2.3)
- Visual Studio 2015 速递(4)——高级特性之移动开发
- Python框架DJango安装
- 如何提升技术团队的情绪与效率