以图明志

C/C++编程语言

[专题] C语法陷阱:理解(*(void(*)())0)()

用(void (*)())0来替换函数指针fp
拥有了前面的预备知识,我们现在可以分两步来分析表达式 (*(void(*)())0)() 。第一步,假定变量fp是一个函数指针,那么如何调用fp所指向的函数呢?因为fp是一个函数指针,那么*fp就是该指针所指向的函数,所以(*fp)()就是调用该函数的方式。

C/C++编程语言

[专题] 漫谈C指针:函数指针作为函数参数使用

附加一个实例
既然函数指针变量是一个变量,当然也可以作为某个函数的参数来使用的。所以,你还应知道函数指针是如何作为某个函数的参数来传递使用的。要求:我要设计一个CallMyFun函数,这个函数可以通过参数中的函数指针值不同来分别调用MyFun1、MyFun2、MyFun3这三个函数(注:这三个函数的定义格式应相同)。

C/C++编程语言

[专题] 漫谈C指针:函数调用的指针写法

用多种方法来调用函数
有了FunP指针变量后,我们就可以对它赋值指向MyFun,然后通过FunP来调用MyFun函数了。看我如何通过FunP指针变量来调用MyFun函数的: (*FunP)(20); 运行看看。嗯,不错,程序运行得很好。哦,我的感觉是:MyFun与FunP的类型关系类似于int 与int * 的关系。函数MyFun好像是一个如int的变量(或常量),而FunP则像一个如int * 一样的指针变量。
1 / 1 首页 < Prev 1 Next > 尾页 页码: