函数指针的定义,赋值以及使⽤
1.函数指针定义
函数类型 (*指针变量名)(形参列表);
“函数类型”说明函数的返回类型,由于“()”的优先级⾼于“*”,所以指针变量名外的括号必不可少,后⾯的“形参列表”表⽰指针变量指向的函数所带的参数列表。
例如:
指针函数的作用int (*f)(int x);
double (*ptr)(double x);
在定义函数指针时请注意:
函数指针和它指向的函数的参数个数和类型都应该是—致的;
函数指针的类型和函数的返回值类型也必须是⼀致的。
2.函数指针的赋值
函数名和数组名⼀样代表了函数代码的⾸地址,因此在赋值时,直接将函数指针指向函数名就⾏了。
例如,
int func(int x);
int (*f) (int x);
f=func;
赋值时函数func不带括号,也不带参数,由于func代表函数的⾸地址,因此经过赋值以后,指针f就指向函数func(x)的代码的⾸地址。
3.通过函数指针调⽤函数
函数指针是通过函数名及有关参数进⾏调⽤的。
与其他指针变量相类似,如果指针变量pi是指向某整型变量i的指针,则p等于它所指的变量i;如果pf是指向某浮点型变量f的指针,则pf就等价于它所指的变量f。同样地,f是指向函数func(x)的指针,则f就代表它所指向的函数func。所以在执⾏了 f=func;之后,(*f)和func代表同⼀函数。
由于函数指针指向存储区中的某个函数,因此可以通过函数指针调⽤相应的函数。现在我们就讨论如何⽤函数指针调⽤函数,它应执⾏下⾯三步:
⾸先,要说明函数指针变量。
例如:int (*f)(int x);
其次,要对函数指针变量赋值。
例如: f=func;    (func(x)必须先要有定义)
最后,要⽤ (*指针变量)(参数表);调⽤函数。
例如:    (*f)(x);(x必须先赋值)

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。