函数指针 和 指针函数 是同一概念吗?
问题描述:
函数指针 和 指针函数 是同一概念吗?
我所理解的一个概念:建立一个数组,数组包含要调用的函数名;
调用这个数组的元素,等于调用相应的函数功能;
我所理解的概念,是标题的前者还是后者?
这两个名词,是不是两个完全不同的概念?
答
函数指针是指向函数的指针变量.
因而“函数指针”本身首先应是指针变量,只不过该指针变量指向函数.这正如用指针变量可指向整型变量、字符型、数组一样,这里是指向函数.如前所述,C在编译时,每一个函数都有一个入口地址,该入口地址就是函数指针所指向的地址.有了指向函数的指针变量后,可用该指针变量调用函数,就如同用指针变量可引用其他类型变量一样,在这些概念上一致的.函数指针有两个用途:调用函数和做函数的参数.函数指针的说明方法为:
数据类型标志符 (*指针变量名)(参数);
注:函数括号中的参数可有可无,视情况而定.
指针函数是指带指针的函数,即本质是一个函数.
我们知道函数都有返回类型(如果不返回值,则为无值型),只不过指针函数返回类型是某一类型的指针.其定义格式如下所示:
返回类型标识符 *返回名称(形式参数表)
{ 函数体 }
返回类型可以是任何基本类型和复合类型.返回指针的函数的用途十分广泛.事实上,每一个函数,即使它不带有返回某种类型的指针,它本身都有一个入口地址,该地址相当于一个指针.比如函数返回一个整型值,实际上也相当于返回一个指针变量的值,不过这时的变量是函数本身而已,而整个函数相当于一个“变量”.