函数与指针
了解了函数,以及指针,我们可以思考它们之间可以建立什么联系。
对于指针来说,它既可以指向变量,也可以指向数组,指向指针,其实它还可以指向函数,这时候称为函数指针。
对于函数来说,它的参数可以是变量,数组,以及指针。它的返回值可以是某个数据类型,某个数组,同时,也可以是一个指针,即从函数返回指针,这时候称为指针函数。
1.函数指针
如上所说,函数指针是指一个指向函数地址的指针,它的本质是一个指针。同一个指针可以根据需要指向不同函数,也就是在程序运行的不同时间段可以调用不同函数,根据我们的赋值来决定。(其实以我现在的理解来看,有点不明白,这个函数指针到底有什么好处呢,与其通过指针来调用函数,倒不如直接调用函数名来得方便。。。)
让我们回顾指针的定义方法:
int a=10;
int *p;//定义指针p
p=&a;//把变量a的地址赋值给p
函数指针的定义方法略有不同,但跟它要指向的函数密切相关:
指针类型 (*指针名)(形参列表);
指针函数
指针函数是返回值为指针的函数,它的本质是一个函数。
指针函数的定义和函数指针有相似之处,但细微处不同,细细体会:
返回值类型 *函数名(形参列表)
{
函数主体
}