指向函数的指针(函数指针)和指针函数

      在C语言中,一碰到指针,人就比较容易犯晕,尤其是我,虽然知道指针神话了C语言,但也深知指针的麻烦。

      今天看书看到指向函数的指针,顿时又陷入自我混沌状态,这是本着逃避心理的混沌!但是总是要慢慢明白的,所以就根据网络上看到的和书上读到的,在此尽我所能得总结下,以便后续学习回过头来回忆...

      书上说,在C语言中,函数本身不是变量,但可以定义指向函数的指针。这种类型的指针可以被赋值、存放在数组中、传递给函数以及作为函数的返回值等等。这个可以基本说明为什么要有函数指针,我的理解是函数本身不能作为函数参数,所以定义一个指向函数的指针,这样就可以在函数中作为参数使用。这也许是函数指针最重要的用途吧!

      百度百科讲的很明白,函数指针是指向函数的指针变量。 因而“函数指针”本身首先应是指针变量,只不过该指针变量指向函数。这正如用指针变量可指向整型变量、字符型、数组一样,这里是指向函数。如前所述,C在编译时,每一个函数都有一个入口地址,该入口地址就是函数指针所指向的地址。有了指向函数的指针变量后,可用该指针变量调用函数,就如同用指针变量可引用其他类型变量一样,在这些概念上是一致的。函数指针有两个用途:调用函数和做函数的参数。

      注1:“函数类型”说明函数的返回类型,由于“()”的优先级高于“*”,所以指针变量名外的括号必不可少,后面的“形参列表”表示指针变量指向的函数所带的参数列表。例如:

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章