函数指针及含参函数指针做参数的实现

转载 2016年06月01日 19:00:54
  1. 函数指针是指向函数的指针变量。c在编译时,每一个函数都有一个入口地址,该入口地址就是函数指针指向的地址处。有了指向函数的指针变量后。可以通过该指针变量调用函数,函数指针有两个用途:调用函数、做函数的参数:

    1. 调用函数,如下所示:

               

               输出结果如下:

                  

由以上可以说明成功调用。


b.无参函数指针做参数的实现,如下(标准写法)所示:



输出结果如下:

                       


还有以下写法也能成功,因为c语言标准规定可以这样用:

                      

也能成功输出


c.带参有返回值的函数指针做参数的



输出结果如下:

                     


而不能写成如下所示:

                    

也可写成以下形式,其中涉及到函数指针类型的转换:


2.函数指针数组的实用之处:当我们需要判断大量条件的时候,并且在每一个条件都有相应的处理函数,这时实用switch...case..的代码量会很大,并且效率会比较低,这个时候就可以使用函数指针数组来解决这个问题了,可以使用每个条件为数组下表:如下所示:

结果如下

相关文章推荐

利用函数指针实现多分支选项

  • 2010年11月06日 21:35
  • 26KB
  • 下载

C语言函数指针做函数参数案例

本案例利用函数指针当作函数的参数,函数 add(int (*pf)(int*,int),int *a,int n)可以做到传入addOne就对数组a中每个数值加1,传入addTwo就对数组a中每个数值...

函数指针作为函数参数,实现冒泡排序的升序排序和降序排序

#include #define N 10//定义数组元素个数 int Ascending(int a,int b);//升序排列的函数声明 int Descending(int a,int b);...

unity中调用dll(char*,以及带有函数指针的参数)方法总结

dllImport是System.Runtime.InteropServices命名空间下的一个属性类,因此ASP.NET中要使用DllImport的,必须在先“using System.Runtim...

关于用函数指针参数申请动态内存的问题

今天在写一个Binary Search Tree的程序时,发现其插入有问题,下面是插入程序,每次插入完成后,节点还是NULL。 template void CMyTree::insert(co...

C语言 命令行参数 函数指针 gdb调试 .

作者 : 万境绝尘 转载请注明出处 : http://blog.csdn.net/shulianghan/article/details/21551397 | http://www.hanshuli...

关于用函数指针参数申请动态内存的问题

今天在写一个Binary Search Tree的程序时,发现其插入有问题,下面是插入程序,每次插入完成后,节点还是NULL。 template void CMyTree::insert(const...
  • zwgdft
  • zwgdft
  • 2012年04月12日 16:27
  • 3575

函数指针作参数的作用

函数指针作参数的作用查了很多资料,理解上有一定的难度,有的说作为一个接口,我知道人家说得没错,但作为初学者,当时怎么也理解不了,现在我把我个人的理解作一个说明,忘高手指教,感谢中! 作为一个接口,其...
  • hfxc226
  • hfxc226
  • 2011年11月21日 18:32
  • 1830

c++函数指针与默认参数

#include using namespace std;inline void printA() { //内联函数,提高效率 int a = 10; cout ...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:函数指针及含参函数指针做参数的实现
举报原因:
原因补充:

(最多只允许输入30个字)