指针函数与函数指针的区别

《—》转自:http://www.cnblogs.com/gmh915/archive/2010/06/11/1756067.html

《二》函数指针的用法:

形式1:返回类型(*函数名)(参数表) 

1 char (*pFun)(int);   
2 char glFun(int a){ return;}   
3 void main()   
4 {   
5     pFun = glFun;   
6     (*pFun)(2);   
7 }  

         第一行定义了一个指针变量pFun。首先我们根据前面提到的“形式1”认识到它是一个指向某种函数的指针,这种函数参数是一个int型,返回值是char类型。只有第一句我们还无法使用这个指针,因为我们还未对它进行赋值。
         第二行定义了一个函数glFun()。该函数正好是一个以int为参数返回char的函数。我们要从指针的层次上理解函数——函数的函数名实际上就是一个指针,函数名指向该函数的代码在内存中的首地址
         然后就是main()函数了,它的第一句您应该看得懂了——它将函数glFun的地址赋值给变量pFun。main()函数的第二句中“*pFun”显然是取pFun所指向地址的内容,当然也就是取出了函数glFun()的内容,然后给定参数为2。

 

原文地址:https://www.cnblogs.com/prayer521/p/4430350.html